V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Actrace
V2EX  ›  程序员

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

  •  
  •   Actrace · 2014-07-05 18:05:06 +08:00 · 3721 次点击
    这是一个创建于 3795 天前的主题,其中的信息可能已经有所发展或是发生改变。
    其实我也不知道是否用词准确。

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

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

    难道是某墙。。。

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

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

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

    劫持不会给你发两个请求的。。还没那么2.。。
    sampeng
        7
    sampeng  
       2014-07-07 10:14:43 +08:00
    我以前就碰到过。。做验证码的时候。。firefox的一个诡异bug。。无缘无故给我发了两个请求。。。查了2天。。突然开窍,按我的思路一测。。果然是firefox的bug。。
    Actrace
        8
    Actrace  
    OP
       2014-07-07 10:15:11 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   876 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:34 · PVG 04:34 · LAX 12:34 · JFK 15:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.