查看原文
其他

网络运营落地页风控实践

goofy 掌门技术 2021-05-29

随着产品的越来越同质化,互联网迎来运营驱动的时代,网络运营风控也随之变得尤为重要。

网络运营需要做风控的地方有很多,做为技术人员,本篇主要从技术上来盘点所有可能遇到的风险,进行有效的预防与监控。

基于我们目前的整个技术体系,预测可能的风险主要来自以下几个方面:

  • 有问题的发版可能造成的问题,比如页面无法访问,页面报错、性能大幅的下降等等。

  • 页面静态文件的 CDN 节点出现问题,造成页面资源加载不到或加载版本不对。

  • 接入 WAF 数据风控的 js 文件出现问题,造成页面的加载延迟。

  • 域名或 https 证书过期,造成页面无法访问。

  • 页面地址被封,主要指微信内分享的地址被微信封禁。

 
知道了可能发生的风险,接下里就是针对性的作出防控:

 

流量监控

流量监控主要是监控页面 PV 的剧烈波动,比如前一刻还有很多流量,突然流量降幅很大或者直接为 0 ,这时候就会发布报警。
造成流量剧烈波动最直接的原因一般是页面突然无法访问或者页面资源加载出现问题,分析原因可能是页面被封禁、错误的发版或者域名、证书过期等,接下里就是找到真正的原因,然后针对性的做出处理。


监控设置:



报警效果:

 

前端性能、js 错误监控

页面性能、js 错误的监控跟流量监控差不多,都是在剧烈波动的时候报警,但是造成的原因更可能是由于错误的发版,比如发版的代码里包含潜在的 bug 没有测出,那么再某个特定的场景下就会大量报错,或者某个资源的引入不当造成整个页面的加载时长暴增等等。


监控设置:


报警效果:


 

CDN 容灾

因为几乎所有落地页的前端静态资源文件都是放在 CDN 上面,尽管 CDN 发生故障的概率很低。但是一旦发生,后果就会非常严重,不得不防。我们目前的方案是 CDN 准备两套节点,一旦发现某套节点出现问题,便会迅速把 CDN 域名解析到另一套节点,以便把损失降到最低。

 

WAF 接入管理

WAF 是处于安全考虑,本身是没有问题的,但是 WAF 的数据风控会在接入的所有页面里加入一个 JS 文件,而这个文件并非异步加载,一旦出现问题,那么整个页面资源的加载就会出现问题。为此我们专门做了 WAF 数据风控的接入管理,一旦发现 WAF JS 文件出现加载问题,可立即关闭 WAF 数据风控。


监控设置:

 



域名和 https 证书过期监控

为预防微信封禁,我们申请了很多的域名和 https 证书,但是域名或证书的一旦过期,就会造成页面无法访问。为此,我们做了域名和证书的有效期管理,并且会在临近过期前预警。

 



微信域名防封与监控

做网络运营,微信分享是必不可少的。不过正如微信官方所言,微信是用户和朋友们沟通的场所,朋友圈是用户分享和关注朋友们生活点滴的空间,必然不会任其沦为营销的工具。于是就有了《微信外部链接内容管理规范》,但凡违规定的外部分享链接都有被封禁的风险。

 
微信域名封禁是整个运营风控里最重要也是最常发生的部分,要做到完全不被封禁是不可能的,为了尽量延长分享链接的寿命,减少损失,就要做好防范与检测。

 

封禁机制

首先,我们先大致了解下微信可能的封禁机制:

  • 微信服务会检测链接内容,发现有违规内容就会封禁。

  • 包含违规内容的页面被人为举报,一旦查明违规就会被封禁。

  • 页面被举报多次,达到一定的阈值就会进入人工审核,一旦确定违规也会被封禁。

  • 单个链接一定时间内被分享超过某个阈值,就会有被封禁的风险。

 

防范措施

了解了上面的封禁机制,我们就可以作出针对性的防范措施:

  • 分享页面内容尽量不要违规。

  • 对分享页面进行多域名绑定分流,使其尽量不要达到被封禁的阈值。

  • 使用技术手段屏蔽投诉按钮,这个比较投机,而且目前看来兼容性不好,很容易被微信补上漏洞。

  • 使用多个域名地址跳转来干扰爬虫的检测,这种方式对页面性能有一定影响,而且也还是可能被封禁。

  • 使用建站旧、知名的老域名不容易被封杀,但是一旦被封杀,代价也比较大。

以上几点比较实用的也就是尽量检查页面内容不要违规,以及增加尽量多的域名分流和备用,也是目前我们要落实的。

 

域名监测

域名一旦被封,及时发现,才能把损失降低到最小,这就需要域名检测了。域名检测一般有两种实现方式:

  • 通过模拟器模拟正常分享流程,如果发现异常,则直接报警,但这个实现成本比较高。

  • 通过检测接口定时轮训监测。

目前我们采用的就是通过接口来轮训监测。对于接口本身,虽然有很多第三方收费接口,但目前来讲大可不必,因为通过微信官方的 api 也可以实现,大致思路就是先使用微信官方提供的"长链接转成短链接"接口( https://developers.weixin.qq.com/doc/offiaccount/Account_Management/URL_Shortener.html )把分享链接转换为微信短链接,然后在请求短链接,根据重定向之后的 host 是否为 weixin110.qq.com 来检测url是否被微信封禁。当然,这种方法却也是有弊端的,一是转短链接的接口调用次数有限(目前够用),再一个容易被微信“和谐”。


设计模型图:


报警效果:


 

封禁处理

一旦检测到域名被封,就要有及时、正确的处理了。当然最保险的做法就是根据被封信息检查页面上可能违规的地方,删掉相关内容,然后申请解封。再一个可以准备多个域名,一旦被封,马上切换。

 

最后

以上是我们目前在运营风控上所做的内容,整个监控体系上线以后,我们收到了大量的监控报警,也根据报警信息及时处理了很多问题,避免了重大事故和资损的发生。之后我们还会不断进行技术方案的调研和优化,以使我们能够做对风险做到更好的预防、监控和及时处理,使风险对业务的损失降到最低。

大家有什么好的建议,欢迎留言讨论哦!


----------  END  ----------


加入掌门


掌门在招职位有研发总监( Java /音视频方向)、研发工程师/架构师( Web 前端/ Java / iOS / 安卓 )、测试工程师(功能/自动化/性能)、DBA 、大数据工程师、算法工程师( NLP /用户画像)、K8S 架构师、运维工程师、产品经理。欢迎加入掌门教育大家庭,一起畅谈技术,分享交流。

投递信箱:zeying.shi@zhangmen.com 施老师。



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存