社区产品那点事儿 —— 垃圾帖与产品安全策略

前言:作产品,安全问题是一个不能不考虑的问题,稍有不慎就会发生相似「薅羊毛」「信息被盗」等问题。不少时候咱们都在寻求技术方面的解决方案,但其实有一些简单的产品策略,也能够从必定程度上减小安全问题的发生。今天会从以前遇到过的社区「垃圾帖」问题入手,探讨产品设计层面上对于安全问题的缓解办法。web


问题

在作社区产品时,常常会遇到不少的垃圾内容,较为常见的是一类包含色情信息、外链引流信息的内容。这种内容不少都是大面积批量发出,单纯靠人工删除远远跟不上发布的速度,致使整个社区中充斥着这类违规内容,不只影响用户体验,还会存在法规上的风险。 shell

网易云音乐的一篇垃圾帖


分析

采集这些垃圾帖的内容和发布用户信息后,发现这些垃圾内容有如下一些特征:数据库

  • 发布的内容大同小异,基本都附有手机、微信、外链等内容
  • 内容的发布者绝大部分为刚注册的新用户,极少数的为正经常使用户
  • 内容的发布者 IP 地址和 MAC 地址均不一致

能够看出这些特征中有以下一些共性:安全

  • 发布者的目的是但愿把用户向站外引流,但与社区自己不构成竞争关系
  • 发布者为恶意用户批量注册的帐号,且没法用禁用 IP 或 MAC 地址来屏蔽

解决方案

不难发现,整个垃圾内容发布的流程中存在两个重要节点:用户帐号批量注册和垃圾内容发布,所以考虑从这两个节点入手解决。服务器

1. 针对帐号体系微信

  • 注册限制
  1. 在新用户注册时,经过增长验证码(短信验证码、图片验证码等)增长用户注册成本,抵御部分恶意注册的现象
  2. 收集注册数据,对比正经常使用户的行为,对非正经常使用户进行帐户冻结
  • 登陆限制
  1. 在用户登陆时,增长图片验证、人机识别混合验证
  2. 限制用户的登陆频次
  3. 高危帐户(屡次异地登陆等)进行校验或强制要求修改密码

2. 针对内容发布post

  • 发布限制
  1. 在用户发布内容时,增长图片验证、人机识别混合验证
  2. 针对用户发布的内容,增长关键字校验,触及违规或敏感词汇的内容不容许发出
  3. 限制新注册用户的日发布内容的数量

这样就能够了吗?

增长了这些限制,上线以后,不少的问题暴露了出来:优化

  • 因为增长了很是复杂的验证机制,致使用户的注册、登陆和内容发布受阻,新增用户、活跃用户和内容生产量有明显降低
  • 违规发布者为突破每日发布限制,开始盗取老用户的帐号信息,进行垃圾帖发布
  • 增长屏蔽的关键词永远是滞后的,只能等新的垃圾帖内容发出后丰富关键词库,但这时垃圾帖已经产生
  • 关键词「一刀切」的屏蔽方式,很容易将正常内容也过滤掉,打击用户内容发布的信心。能够猜一下下图为何被屏蔽:
    屏蔽内容

因此先前的策略起到了必定的效果,可是看起来「得不偿失」。这种状况应该如何应对呢?细化规则网站


解决方案 2.0

以前的策略之因此存在问题,是由于未能作到更细粒度的针对,「宁错一千不漏一个」。所以要想解决这个问题,最好的办法就是细化拦截规则。设计

1. 针对验证码:

  • 增长每日免验发布阈值
  • 增长免验权限用户(高级别,安全风险低的用户能够免验,这部分用户大多为活跃用户,帐号被盗取可能性较低)
  • 采用更简单的验证方式(好比从图文式验证码改成行为式验证码)

2. 针对关键词过滤:

  • 将关键词划分安全等级,不一样等级进行不一样处理,如低等级关键词用「**」代替,中等级关键词仅对发布者可见,其余用户不可见,高等级关键词直接禁止发出
  • 创建内容过滤池,对已屏蔽的内容进行记录,若出现正常内容被过滤的状况,则能够手动恢复
  • 增长新关键词后,支持将历史内容从新过滤一次

一些疑问

疑问:为何要在不相关的社区发布色情信息呢?批量注册新用户是怎么作到的,哪里来的这么多手机号?老用户的帐号信息是如何被盗取?......

  1. 出于 SEO 考虑,不少色情内容或者网站为了引流,会在高权重的网站内发布相关内容,用户在搜索时相关的内容即会优先展现,因此有专门的工做室承接垃圾内容的推广。
    推广软件客服
  2. 首先不少网站注册时不要求用户输入手机号,所以能够经过注册机,直接经过 post 请求与服务器交互,就能够完成批量注册;若是是须要手机号的注册,则能够经过灰色产业购入不带有身份信息的「黑卡」,成本低,投入产出可观。
  3. 若自己站点用户登陆时密码传输校验正常、token 未被破解或劫持,则很大可能用户信息泄露为「撞库」致使。所谓撞库,简单来讲就是非法入侵者经过技术手段(漏洞注入、webshell,etc.)或者获取已有社工库,创建一个较为完整的数据库后,尝试用这些库中的信息去登陆其余系统。通常因为前期数据采集较为详实,撞库所用的字典精度比暴力破解的高,所以成功率也会高。

一些思考

  1. 一些须要从技术角度的问题,从产品层面上也能够作一些优化
  2. 解决问题时须要找到问题的关键节点,学会提取共性和发现差别
  3. 数据监控很重要
  4. 问题的解决方案须要进行相应调整,直到找到最优解
  5. 尝试去深刻业务,分析业务,找到利益矛盾点,对解决问题大有裨益

Ps:一些实用的外接服务(非广告):

  1. 极验验证
  2. 网易易盾
相关文章
相关标签/搜索