前言:作产品,安全问题是一个不能不考虑的问题,稍有不慎就会发生相似「薅羊毛」「信息被盗」等问题。不少时候咱们都在寻求技术方面的解决方案,但其实有一些简单的产品策略,也能够从必定程度上减小安全问题的发生。今天会从以前遇到过的社区「垃圾帖」问题入手,探讨产品设计层面上对于安全问题的缓解办法。web
问题
在作社区产品时,常常会遇到不少的垃圾内容,较为常见的是一类包含色情信息、外链引流信息的内容。这种内容不少都是大面积批量发出,单纯靠人工删除远远跟不上发布的速度,致使整个社区中充斥着这类违规内容,不只影响用户体验,还会存在法规上的风险。 shell
分析
采集这些垃圾帖的内容和发布用户信息后,发现这些垃圾内容有如下一些特征:数据库
- 发布的内容大同小异,基本都附有手机、微信、外链等内容
- 内容的发布者绝大部分为刚注册的新用户,极少数的为正经常使用户
- 内容的发布者 IP 地址和 MAC 地址均不一致
能够看出这些特征中有以下一些共性:安全
- 发布者的目的是但愿把用户向站外引流,但与社区自己不构成竞争关系
- 发布者为恶意用户批量注册的帐号,且没法用禁用 IP 或 MAC 地址来屏蔽
解决方案
不难发现,整个垃圾内容发布的流程中存在两个重要节点:用户帐号批量注册和垃圾内容发布,所以考虑从这两个节点入手解决。服务器
1. 针对帐号体系微信
- 在新用户注册时,经过增长验证码(短信验证码、图片验证码等)增长用户注册成本,抵御部分恶意注册的现象
- 收集注册数据,对比正经常使用户的行为,对非正经常使用户进行帐户冻结
- 在用户登陆时,增长图片验证、人机识别混合验证
- 限制用户的登陆频次
- 高危帐户(屡次异地登陆等)进行校验或强制要求修改密码
2. 针对内容发布post
- 在用户发布内容时,增长图片验证、人机识别混合验证
- 针对用户发布的内容,增长关键字校验,触及违规或敏感词汇的内容不容许发出
- 限制新注册用户的日发布内容的数量
这样就能够了吗?
增长了这些限制,上线以后,不少的问题暴露了出来:优化
- 因为增长了很是复杂的验证机制,致使用户的注册、登陆和内容发布受阻,新增用户、活跃用户和内容生产量有明显降低
- 违规发布者为突破每日发布限制,开始盗取老用户的帐号信息,进行垃圾帖发布
- 增长屏蔽的关键词永远是滞后的,只能等新的垃圾帖内容发出后丰富关键词库,但这时垃圾帖已经产生
- 关键词「一刀切」的屏蔽方式,很容易将正常内容也过滤掉,打击用户内容发布的信心。能够猜一下下图为何被屏蔽:
因此先前的策略起到了必定的效果,可是看起来「得不偿失」。这种状况应该如何应对呢?细化规则。网站
解决方案 2.0
以前的策略之因此存在问题,是由于未能作到更细粒度的针对,「宁错一千不漏一个」。所以要想解决这个问题,最好的办法就是细化拦截规则。设计
1. 针对验证码:
- 增长每日免验发布阈值
- 增长免验权限用户(高级别,安全风险低的用户能够免验,这部分用户大多为活跃用户,帐号被盗取可能性较低)
- 采用更简单的验证方式(好比从图文式验证码改成行为式验证码)
2. 针对关键词过滤:
- 将关键词划分安全等级,不一样等级进行不一样处理,如低等级关键词用「**」代替,中等级关键词仅对发布者可见,其余用户不可见,高等级关键词直接禁止发出
- 创建内容过滤池,对已屏蔽的内容进行记录,若出现正常内容被过滤的状况,则能够手动恢复
- 增长新关键词后,支持将历史内容从新过滤一次
一些疑问
疑问:为何要在不相关的社区发布色情信息呢?批量注册新用户是怎么作到的,哪里来的这么多手机号?老用户的帐号信息是如何被盗取?......
- 出于 SEO 考虑,不少色情内容或者网站为了引流,会在高权重的网站内发布相关内容,用户在搜索时相关的内容即会优先展现,因此有专门的工做室承接垃圾内容的推广。
- 首先不少网站注册时不要求用户输入手机号,所以能够经过注册机,直接经过 post 请求与服务器交互,就能够完成批量注册;若是是须要手机号的注册,则能够经过灰色产业购入不带有身份信息的「黑卡」,成本低,投入产出可观。
- 若自己站点用户登陆时密码传输校验正常、token 未被破解或劫持,则很大可能用户信息泄露为「撞库」致使。所谓撞库,简单来讲就是非法入侵者经过技术手段(漏洞注入、webshell,etc.)或者获取已有社工库,创建一个较为完整的数据库后,尝试用这些库中的信息去登陆其余系统。通常因为前期数据采集较为详实,撞库所用的字典精度比暴力破解的高,所以成功率也会高。
一些思考
- 一些须要从技术角度的问题,从产品层面上也能够作一些优化
- 解决问题时须要找到问题的关键节点,学会提取共性和发现差别
- 数据监控很重要
- 问题的解决方案须要进行相应调整,直到找到最优解
- 尝试去深刻业务,分析业务,找到利益矛盾点,对解决问题大有裨益
Ps:一些实用的外接服务(非广告):
- 极验验证
- 网易易盾