gpt4 book ai didi

csrf - 好像我对 CSRF 的理解有误?

转载 作者:行者123 更新时间:2023-12-04 10:05:27 28 4
gpt4 key购买 nike

在阅读了许多有关 CSRF 的文档后,我仍然有点困惑。所以我希望有人可以向我解释一下:

  • 假设我有一个仅供经过身份验证的用户使用的个人资料页面,比如说 abc.com/profile,它会显示我所有的私有(private)信息。如果我登录,然后去一个“坏”的网站,这个网站能以某种方式获取并解析我的个人资料页面吗?
    (我通过在不同的站点上打开firebug控制台做了一点经验,然后请求我的个人资料页面,似乎至少我可以在“Net”选项卡的“响应”中看到全部内容,没想到了解如何获取此内容并对其进行解析。但也许有可能?)
  • 现在假设我的个人资料页面上有一个表单,其中当然有 csrf token 。现在,如果攻击者可以获取我的个人资料页面,他可以解析该内容,获取 token 然后提交虚假表单?
  • 现在假设 1 和 2 是正确的,我应该怎么做才能防止这种情况发生?
  • 最佳答案

    您的观点不太正确...但是以这种情况为例。

    示例攻击

    假设一个用户登录到 假国官方银行 - GoodBank.com,余额为 1,000,000 黄金。

    MaliciousSite.com ,有一个<img>或其他一些通用的 JavaScript 导致您向 GoodBank.com 发出请求.
    <img>有一个 srchttp://www.goodbank.com/account/transfer.php?amount=10000&sentTo=malicioususer .

    现在,该站点已在您的用户帐户下发出请求,并导致您调用了一个您本来不会拥有的页面。

    现在,您可能认为您可以通过仅使用 POST 来防止这种情况,但这些也不安全。
    正确的方法是在表单中使用 CSRF token ,并且在提交表单时,您应该检查您收到的 CSRF token 是否与发出的相同。

    不要使用 these measures to protect yourself :

  • secret cookies
  • 只接受 POST 请求
  • 多页表格
  • URL重写

  • 而是使用这样的 token :
    <form action="/transfer.do" method="post">
    <input type="hidden" name="CSRFToken" value="OWY4NmQwODE4ODRjN2Q2NTlhMmZlYWEwYzU1YWQwMTVhM2JmNGYxYjJiMGI4MjJjZDE1ZDZjMTVi
    MGYwMGEwOA==">

    </form>

    在这里查看更多解释: CSRF Cheat Sheet

    关于csrf - 好像我对 CSRF 的理解有误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7275104/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com