drymonfidelia

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

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

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

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


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

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

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

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

    https://imgur.com/66sccjK
    lovelylain
    lovelylain
    Jul 17, 2024 via Android
    35
    post 换成 put 有什么区别?
    justdoit123
    justdoit123
    Jul 17, 2024
    36
    @lovelylain 浏览器为了向后兼容,依然允许表单构建的请求进行跨域。而表单请求只有 GET/POST 两种 method 。这种请求,是有办法自动带上目标网站的 Cookie 的,从而实现 CSRF 攻击。
    lovelylain
    lovelylain
    Jul 17, 2024 via Android
    37
    @justdoit123 明白了,谢谢
    euronx
    euronx
    Jul 17, 2024
    38
    CSRF 和 put 有啥关系?
    oyps
    oyps
    Jul 17, 2024
    39
    避免 CSRF 攻击的方法:
    1. 避免在 GET 请求中进行状态改变操作
    2. 避免直接根据 URL 参数执行敏感操作
    3. 增加 CSRF token 校验,确保请求合法
    4. 设置允许访问的来源白名单
    NUUUUULL
    NUUUUULL
    Jul 18, 2024
    40
    单浏览器维度不允许跨域就会有跨站请求
    NUUUUULL
    NUUUUULL
    Jul 18, 2024
    41
    单浏览器维度不允许跨域就不会有跨站请求
    echoZero
    echoZero
    Jul 18, 2024
    42
    参考 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   ·   Privacy   ·   Solana   ·   2253 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 16:10 · PVG 00:10 · LAX 08:10 · JFK 11:10
    ♥ Do have faith in what you're doing.