V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
VisionKi
V2EX  ›  问与答

遇见怪事了, URL 带敏感词返回 502 状态码,并且一小段时间内无法访问

  •  1
     
  •   VisionKi · 2020-06-08 09:29:07 +08:00 · 3510 次点击
    这是一个创建于 1635 天前的主题,其中的信息可能已经有所发展或是发生改变。

    微信截图_20200608092100.png

    上面是我的一个搜索接口,早上发现不能访问,然后查询日志,发现有用户搜索色情两个字,但过了一会正常了。

    然后自己试了下,搜完敏感词之后,发现搜完这个词后一小段时间都是 502 。接下来的请求似乎没有进入到服务器就返回 502 了,因为在日志中找不到请求。以为是服务器出现了问题,上阿里云买了个服务器测试,用 springboot 写了个最简单的 controller,传入上面的参数,结果一样是一小段时间内无法访问。

    类似的情况还有一些政治敏感词,不知道是什么情况。

    第 1 条附言  ·  2020-06-09 12:35:14 +08:00
    经 @Jirajine 老哥提醒,才想起后端是搭在香港服务器,当初因为直接访问比较慢,拿了个深圳的服务器做反向代理当中转,问题应该是出在这里。
    33 条回复    2020-06-10 12:34:38 +08:00
    mx1700
        1
    mx1700  
       2020-06-08 09:37:15 +08:00 via Android
    "墙"的基本功能,换 https 就好了
    rapiz
        2
    rapiz  
       2020-06-08 09:40:42 +08:00
    这是最开始就有的功能,看来 https 已经让很多人都忘了有这回事了
    pompeii
        3
    pompeii  
       2020-06-08 09:43:36 +08:00   ❤️ 1
    之前大概 13 14 年的时候,那时候维基还可以裸连,我在手机上用维基的那个 APP,搜正常的东西就没事,搜比如前几天那件事就连不上了,然后一段时间内都连不上,以小时计
    VisionKi
        4
    VisionKi  
    OP
       2020-06-08 09:48:55 +08:00
    @mx1700 已经配了 https 了,大概觉得是墙的原因,但以前没注意,现在碰到了感觉好神奇。
    misaka19000
        5
    misaka19000  
       2020-06-08 09:50:41 +08:00
    楼主致远星战况如何?
    VisionKi
        6
    VisionKi  
    OP
       2020-06-08 09:50:52 +08:00
    @rapiz 我是配了 https 的了,是因为用 get 请求才会被拦截的吗
    CEBBCAT
        7
    CEBBCAT  
       2020-06-08 10:15:31 +08:00
    我觉得楼上各位结论下得有点早了,目前:
    一是好像局域网内还没有检查,
    二是我记得 Google 那会儿搜胡萝卜是 RESET,这有了 https 还有 502……有点奇怪
    VisionKi
        8
    VisionKi  
    OP
       2020-06-08 10:38:17 +08:00
    @CEBBCAT #7 应该就是墙的问题了,我试过在家里搜了敏感词,然后用公司电脑访问也是 502 。但 https 我就不清楚了。
    InkAndBanner
        9
    InkAndBanner  
       2020-06-08 10:56:32 +08:00
    @pompeii 前几天什么事情
    aaronlam
        10
    aaronlam  
       2020-06-08 11:23:57 +08:00
    @InkAndBanner six ㈣
    imn1
        11
    imn1  
       2020-06-08 11:32:21 +08:00
    你的人生太美好了,没见过这种怪事,我十多年前就见过了
    InkAndBanner
        12
    InkAndBanner  
       2020-06-08 12:09:57 +08:00
    @aaronlam 64 不是 30 年钱的事情了么
    Jirajine
        13
    Jirajine  
       2020-06-08 12:16:03 +08:00 via Android
    配了 https 以后不可能还这样吧
    Jirajine
        14
    Jirajine  
       2020-06-08 12:18:05 +08:00 via Android
    别忘了开 HSTS,或者客户端用 https everywhere,不然第一次请求还是明文的
    koast
        15
    koast  
       2020-06-08 12:36:50 +08:00 via Android
    @Jirajine #14 就算开了 HSTS,第一次访问如果地址里包含了敏感词还是会挂。
    vk42
        16
    vk42  
       2020-06-08 13:07:05 +08:00
    @koast 即使第一次访问也是在 TLS 握手完成之后才会发 http 请求,除非 client 实现不合规。

    楼主证书哪里办的?阴谋论一下国内 https 对墙透明?
    whileFalse
        17
    whileFalse  
       2020-06-08 13:48:47 +08:00
    你这个头像怪好看的
    pompeii
        18
    pompeii  
       2020-06-08 13:53:34 +08:00
    @InkAndBanner #9 31 年前的前几天
    aab6090
        19
    aab6090  
       2020-06-08 13:56:01 +08:00 via Android
    @InkAndBanner 如今依然敏感
    VisionKi
        20
    VisionKi  
    OP
       2020-06-08 16:23:41 +08:00
    @vk42 #16 是在腾讯云申请的免费证书
    VisionKi
        21
    VisionKi  
    OP
       2020-06-08 16:24:23 +08:00
    @whileFalse #17 当初在一个网站生成的,前段时间想找但是找不到了
    VisionKi
        22
    VisionKi  
    OP
       2020-06-08 16:26:19 +08:00
    @Jirajine #14 我去试试
    VisionKi
        23
    VisionKi  
    OP
       2020-06-08 16:29:32 +08:00
    @Jirajine 哦不,看了下是有开的
    Jirajine
        24
    Jirajine  
       2020-06-08 16:53:39 +08:00 via Android
    @VisionKi 你确定用 https 发也会被阻断?难不成你的证书真被中间人了?
    wunonglin
        25
    wunonglin  
       2020-06-08 16:57:30 +08:00
    ketword 放 body,用 post
    VisionKi
        26
    VisionKi  
    OP
       2020-06-08 17:17:12 +08:00
    @Jirajine 确定是用了 https 的,其他的就不太清楚了,有空我改用 post 试试还会不会。
    VisionKi
        27
    VisionKi  
    OP
       2020-06-08 17:17:35 +08:00
    @wunonglin 好,找时间试试看
    gzfrankie
        28
    gzfrankie  
       2020-06-08 17:29:12 +08:00   ❤️ 1
    讲道理,HTTPS 是加密 URL 的,比如 www.example.com:443/abc,www.example.com:443 不加密,但是 abc 是加密的,抓个包就可以验证,所以跟 GET 和 POST 没关系。如果你保证你用的是 HTTPS 的话,建议去用 Let's encrypt 的证书去 Digital Ocean/AWS/Azure 之类开个服务器再试试,就知道是不是腾讯 /阿里搞的鬼。
    Jirajine
        29
    Jirajine  
       2020-06-08 17:44:04 +08:00 via Android   ❤️ 1
    @VisionKi 肯定和请求方法没关系,既然确定是 https,那你应该分别排查:
    1. 证书,换 le 证书看看是否复现,排除中间人攻击。
    2. CDN,直连排除 CDN 过滤
    3. 网关后面有没有经过公网 /云服务商内网明文传输
    以上都不行的话,那可能是本机有木马 /开了“敏感词过滤”的服务,换到国外云厂商开一台机器再试试。
    VisionKi
        30
    VisionKi  
    OP
       2020-06-09 08:38:23 +08:00
    @gzfrankie @Jirajine 好,我去换个证书试试先
    VisionKi
        31
    VisionKi  
    OP
       2020-06-09 12:33:15 +08:00
    @Jirajine 突然想起,这个项目后端是搭在香港服务器的。然后当初因为访问较慢,所以用了深圳服务器做了中转,问题应该是出在你说的第三点上面了。nginx 能直接配置 https 转发到另一个 https 域名吗?我试了下好像跳不了。
    Jirajine
        32
    Jirajine  
       2020-06-09 13:51:17 +08:00 via Android   ❤️ 1
    VisionKi
        33
    VisionKi  
    OP
       2020-06-10 12:34:38 +08:00
    @Jirajine 再次感谢,现在配好了,确实不会出现 502 了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5911 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 01:56 · PVG 09:56 · LAX 17:56 · JFK 20:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.