如果网络请求被劫持。。。

2014-07-05 18:05:06 +08:00
 Actrace
其实我也不知道是否用词准确。

起因在这里: http://v2ex.com/t/120971

这几天和小伙伴们调试程序的时候,发现本地明明测试完全没有问题,但是上线到测试服务器后,提交数据有一定几率写入数据库乱码,一开始怀疑是API(HTTP协议)和前端交互的问题,后来通过服务端打日志,发现有一定几率收到两个GET请求,通过打印UA和来源IP,发现,当有两次请求的时候,后到的那个请求,UA一定是Mozilla / 4.0,IP地址经过查询,指向上海电信(我厂是移动光纤企业宽带)。
后到的请求显然经过了解码,中文参数被解码后没有被重新编码就再次提交到服务器,导致数据异常。
最后只好通过上SSL来防止这种行为。

难道是某墙。。。

PS:服务器是国内某里云。

但是我表示强烈谴责这种行为。。。尼玛太坑爹,,害我调试了很久。。。
3628 次点击
所在节点    程序员
8 条回复
fredcc
2014-07-05 18:10:37 +08:00
看起来不像某墙。倒是像某些自定义浏览器的不标准操作。UA并不可靠。尽量使用其他辅助跟踪手段。
Actrace
2014-07-05 18:11:51 +08:00
@fredcc 浏览器自己发起的请求,IP怎么可能会是其他网络的IP呢?
ooxxcc
2014-07-05 18:12:05 +08:00
也许是运营商的缓存服务器什么的……之前用长宽所有流量经过一个缓存服务器才出来……
xinglp
2014-07-05 18:13:43 +08:00
可能是某些ISP用的不规范的透明代理。
fredcc
2014-07-05 18:15:01 +08:00
@Actrace 网络并不是一个简单的点对点的过程。光一个获取终端ip的过程就要有很多方式。何况阿里云还有网络安全监测机制、全国加速机制。

最后,移动企业宽带,问电信联通偷买带宽是常态。中间经过的过程各种欢乐。不信你traceroute一下看看。我大概猜到为啥是上海电信了。
sampeng
2014-07-07 10:13:50 +08:00
两个get请求是啥玩意?相同还是不同?如果是相同。。。反而可能是浏览器自己的bug。。最简单的方式。。本地调试。模拟出相同的环境。测试之。。走内网。

劫持不会给你发两个请求的。。还没那么2.。。
sampeng
2014-07-07 10:14:43 +08:00
我以前就碰到过。。做验证码的时候。。firefox的一个诡异bug。。无缘无故给我发了两个请求。。。查了2天。。突然开窍,按我的思路一测。。果然是firefox的bug。。
Actrace
2014-07-07 10:15:11 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/121102

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX