如何解决:由于被他人恶意举报,网页链接被微信封了
分类:实战技巧 浏览:123 时间:2020-03-01 12:04

很多人都应该遇到这样的问题,光明正大的网页链接突然有一天打开发现被封了,申请解封还得3个工作日,遇到周末就直接嗝屁了,有些链接还是系统的关键跳转链接导致所有微信端业务搁置(用户体验极差,举报的人目的性非常强,周末举报+分析关键业务链接)

我们平台算是被人盯上了,但是本着让你免费帮我做测试的阿Q精神还是要乐观一点,实际也别无他法只能先从自身找原因(说实话我很想沿着网线爬过去揍他)。


年前有一次慢连接攻击也是发生在周末,平台突然访问不了,直接远程上去重启。刚开始以为是内存溢出了,后来才发现是ddos攻击的慢连接(这个问题很难解决,基本都是堆钱)。


这个就更搞笑了,直接把我们平台获取用户微信的跳转接口投诉了(oauth2.0),这尼玛导致所有的授权访问都挂了。马上申请恢复,但是微信那边需要3个工作日,当天还是周六,这个还能等?


刚开始想了一个方法,就是程序中动态更换域名,如果封了一个就换另一个,这个方案实施起来比较麻烦。涉及还需要到微信公众号后台去更换域名等一系列麻烦的操作。


下午下班走在路上我还在想这个问题,这个时候已经被封了5-6个小时,突然想到是网页的链接封了不是域名封了,于是我马上随便测试了一个连接,发现并没有被封,这就好办了哇。


直接在后台生成动态的链接就行了哇。


于是乎,原来的授权链接是这样的https://domain.com/oauth/weixin,然后我就在后面做文章了改成了https://domain.com/oauth/weixin/{randomCode}的形式(randomCode就是一个随机码);马上测试,呃发现还是不行提示被封,再来https://domain.com/{randomCode}/oauth/weixin,放到前面完美解决。


使用SpringMVC中的@PathVariable就可以了

@RequestMapping("{randomCode}"/oauth/weixin)
public String auth(@PathVariable String randomCode,String code){
    //do something
    return "redirect:/someurl";
}

这个方案还是不足,写一个组件,让所有的链接前面都带上随机码,这样就不用担心有人恶意投诉,导致微信端打不开网页了。

https://github.com/benjamin-coding/random-path.git


最后感谢那位投诉的人帮助我们测试/发现平台的缺陷和不足。

奇巧淫技