把所有 POST 请求都换成 PUT,不返回允许非同源请求的响应头,是否就不需要考虑 CORS 攻击了? - V2EX
drymonfidelia

把所有 POST 请求都换成 PUT,不返回允许非同源请求的响应头,是否就不需要考虑 CORS 攻击了?

  •  1
     
  •   drymonfidelia Jul 17, 2024 via iPhone 6135 views
    This topic created in 670 days ago, the information mentioned may be changed or developed.
    Supplement 1    Jul 17, 2024
    是 CSRF 攻击,打错了
    42 replies    2024-07-18 10:41:48 +08:00
    harryWebb
        1
    harryWebb  
       Jul 17, 2024
    如果从非主流的角度讲。。。确实是这样的
    毕竟很多黑客攻击只是针对特定情况下的扫描,扫描到了才会进行下一步渗透
    你直接不按常理出牌,估计除非是针对性的,不然肯定就可以忽略了
    CodeCodeStudy
        2
    CodeCodeStudy  
       Jul 17, 2024
    不是吧,CORS 保护的是浏览器,跟什么请求方法没有关系啊
    drymonfidelia
        3
    drymonfidelia  
    OP
       Jul 17, 2024 via iPhone
    @CodeCodeStudy dorm 表单不能提交 put
    drymonfidelia
        4
    drymonfidelia  
    OP
       Jul 17, 2024 via iPhone
    form 打错了
    Ayanokouji
        5
    Ayanokouji  
       Jul 17, 2024
    建议重新看下 cors 那篇帖子
    drymonfidelia
        6
    drymonfidelia  
    OP
       Jul 17, 2024 via iPhone
    @Ayanokouji 不发跨域响应头+非 get/post 就不是简单请求
    tf2
        7
    tf2  
       Jul 17, 2024
    这个思路。。。6 。。。。。
    paopjian
        8
    paopjian  
       Jul 17, 2024
    我学艺不精,不太清楚 CORS 攻击,这好像就是封闭本服务器啊,也就是不返回 Access-Control-Allow-Origin,只自己玩不让别的网站请求,和有没有 PUT 关系不大
    drymonfidelia
        9
    drymonfidelia  
    OP
       Jul 17, 2024 via iPhone
    别人网站请求你网站非简单请求会先预检,你对预检请求不返回 Access-Control-Allow-Origin 就通不过预检,实际请求无法发送
    elboble
        10
    elboble  
       Jul 17, 2024
    cors 攻击和 put ,post 没直接关系吧
    dzdh
        11
    dzdh  
       Jul 17, 2024
    CORS 不存在"攻击"吧。

    服务端直接对你发起请求,那你怎么做都没用

    浏览器对你发起请求,只要你不返回对应头,那请求也根本发不成功,也没什么用。


    除非你特意设置,允许跨域。否则,你就是不允许,那浏览器就不会给你发跨域请求。
    elboble
        12
    elboble  
       Jul 17, 2024
    我是记得原来讨论是不是所有请求都变成 post ,过滤其他所有行为才是最安全。
    helone
        13
    helone  
       Jul 17, 2024   4
    你想说的是不是 CSRF 攻击
    icanfork
        14
    icanfork  
       Jul 17, 2024
    所以 CORS 那个帖子居然说对了
    ZeekChatCom
        15
    ZeekChatCom  
       Jul 17, 2024
    这种其实就是 Access-Control-Allow-Origin 设置不合理,导致用户在访问恶意网站的时候,浏览器会偷偷发起对受害网站的访问,从而实现盗取个人敏感信息或者刷票等行为。
    kxg3030
        16
    kxg3030  
       Jul 17, 2024   6/span>
    上面分两拨人,一拨是在思考 cors 跨域为什么会有攻击,一拨在思考 put 请求为什么就不会造成 csrf 攻击,这个帖子成功把 cors 和 csrf 混在了一起,只能说世界就是个草台班子...
    kxg3030
        17
    kxg3030  
       Jul 17, 2024
    @ramirezyolis808 你要不先看看你在说什么
    fiveStarLaoliang
        18
    fiveStarLaoliang  
       Jul 17, 2024
    哈哈哈哈哈,鸡同鸭讲
    shadowyue
        19
    shadowyue  
       Jul 17, 2024
    该继续宣传草台班子理论了

    t/1056504?p=1#reply269
    ZeekChatCom
        20
    ZeekChatCom  
       Jul 17, 2024
    @raviscioniemeche 所以呢?
    ZeekChatCom
        21
    ZeekChatCom  
       Jul 17, 2024
    csrf ?那怎么又有简单请求和非简单请求呢?楼主你在说什么?
    justdoit123
        22
    justdoit123  
       Jul 17, 2024
    我认为是可以的。如果请求允许 PUT ,那么就无法在浏览器端构建出 CSRF 攻击。

    但是,这种防御方式有点自损八百的感觉。

    另外,我心中也有一个疑惑,为什么有的人要把 CSRF token 存放到 session 里?我感觉这种绑定的意义不大,还增加服务的负担。
    drealism
        23
    drealism  
       Jul 17, 2024
    那实际上 http 是支持 自定义 method 的,不是更那个啥一点?
    FrankFang128
        24
    FrankFang128  
       Jul 17, 2024
    你说的是跨站点请求伪造,不是跨域哈。
    darksword21
        25
    darksword21  
    PRO
       Jul 17, 2024
    我现在脑子很乱,你们能不能不要再发 cscs 的帖子了
    darksword21
        26
    darksword21  
    PRO
       Jul 17, 2024
    zeromake
        27
    zeromake  
       Jul 17, 2024
    CSRF 不是用来偷 cookies 请求 GET 的吗,不是应该拒绝所有 GET 请求?但是现在 http GET 请求有很多特性( cdn 缓存,浏览器缓存),不是那么好替代的……
    wonderfulcxm
        28
    wonderfulcxm  
       Jul 17, 2024 via iPhone
    这个帖子看得好喜感
    kwater
        29
    kwater  
       Jul 17, 2024
    CORS 是君子协定,只服务理想环境。
    真实世界的攻击不受限 CORS ,可能要真正研究的方向是 CSRF 、重放攻击这些
    Terry05
        30
    Terry05  
       Jul 17, 2024
    这么多打错。。。
    deplives
        31
    deplives  
       Jul 17, 2024
    看标题看的我一愣一愣的,愣是没想通跨域能发起啥攻击。
    看楼中评论竟然还一本正经的讨论起来了,后来发现 你说的其实是 CSRF
    连 CSRF(跨站伪造请求) 和 CORS (跨域) 都分不清,就别发起讨论了。
    kkk9
        32
    kkk9  
       Jul 17, 2024   2
    @fiveStarLaoliang #18 @shadowyue #19 像极了甲方乙方开对接会议
    hahiru
        33
    hahiru  
       Jul 17, 2024
    朕决定了,荣登大宝之后一定要把该死的首字母缩写都砍了。
    AV1
        34
    AV1  
       Jul 17, 2024   2
    其实 HTTP 方法不一定是 GET 、POST 、PUT 、HEAD 、OPTIONS 这些,你完全可以凭喜好自定义一个偏门的单词作为请求方法。

    https://imgur.com/66sccjK
    lovelylain
        35
    lovelylain  
       Jul 17, 2024 via Android
    post 换成 put 有什么区别?
    justdoit123
        36
    justdoit123  
       Jul 17, 2024
    @lovelylain 浏览器为了向后兼容,依然允许表单构建的请求进行跨域。而表单请求只有 GET/POST 两种 method 。这种请求,是有办法自动带上目标网站的 Cookie 的,从而实现 CSRF 攻击。
    lovelylain
        37
    lovelylain  
       Jul 17, 2024 via Android
    @justdoit123 明白了,谢谢
    euronx
        38
    euronx  
       Jul 17, 2024
    CSRF 和 put 有啥关系?
    oyps
        39
    oyps  
       Jul 17, 2024
    避免 CSRF 攻击的方法:
    1. 避免在 GET 请求中进行状态改变操作
    2. 避免直接根据 URL 参数执行敏感操作
    3. 增加 CSRF token 校验,确保请求合法
    4. 设置允许访问的来源白名单
    NUUUUULL
        40
    NUUUUULL  
       Jul 18, 2024
    单浏览器维度不允许跨域就会有跨站请求
    NUUUUULL
        41
    NUUUUULL  
       Jul 18, 2024
    单浏览器维度不允许跨域就不会有跨站请求
    echoZero
        42
    echoZero  
       Jul 18, 2024
    参考 OWASP csrf 攻击防御 https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html#disallowing-simple-requests
    合理的利用 CORS 预检请求,确实是一种防御方式。但是必须要保证 cors 的配置正确性
    About     Help     Advertise     Blog     API     FAQ     Solana     6190 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 205ms UTC 06:39 PVG 14:39 LAX 23:39 JFK 02:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86