gpt4 book ai didi

php - 没有 CSRF token 的表单 : what are the risks

转载 作者:可可西里 更新时间:2023-10-31 23:14:26 26 4
gpt4 key购买 nike

如果我不在我的表单中使用 csrf token ,我将面临哪些风险?我不是在寻找简单的风险标签或名称,因为这些可能会造成混淆。我需要用通俗易懂的语言了解攻击者究竟可以做什么,以及只有在什么情况下他们才能这样做。

最佳答案

CSRF 漏洞允许恶意用户(或网站)让毫无戒心的用户在您的网站上执行他们不希望发生的操作。

一些现实世界的例子是,如果您允许用户通过 GET 而不是 POST 删除帐户,那么有人可以在您的网站上发表以下评论(假设该网站有某种方式发表评论或其他输入等.)

I thought I'd make a comment on your site. Check out this cool image!
<img src='http://example.com/delete_my_account.php" />

现在只要登录用户加载该页面,他们的帐户就会被删除。如果它是通过 POST 而不是 GET 完成的,那么有人可以制作一个表单并诱使用户提交它,并且会发生相同的结果。而如果您使用 CSRF token ,则这是不可能的。

另一个例子是,外部站点可以制作一个表单,该表单可以 POST 到您的站点,并执行不受欢迎的操作。因此,假设您的网站有一个不使用 CSRF token 的购物车。恶意网站可能会创建一个带有“单击此处注册”按钮的表单,但实际上会从您的网站订购 1000 件商品。如果您站点的登录用户访问此恶意站点并单击该按钮,他们将在邮件中收到一份惊喜。

显然还有其他情况,这些只是几个例子。 Google 搜索应该会显示大量文章和教程,其中许多可能还有一些其他示例。 Wikipedia page还有一些您可能会感兴趣的示例。

这些示例的主要思想是有人可以欺骗您的网站执行某项操作,就好像该操作来自用户一样,而实际上用户并不知道它正在发生或不想发生。如果您在您的网站上有任何破坏性的操作(即可以从用户帐户中删除内容,注销用户等)或关键的(即处理金钱),您应该使用 CSRF token 。如果您的网站只是 friend 的相册等,那么您可能不需要为 CSRF token 操心(尽管在构建需要它们的网站时练习总是好的)。

除非您添加 token 以确保请求来自您的网站有意呈现给用户的表单,否则您实际上没有办法知道用户是否打算执行该操作。

因此,您始终希望在生成的每个 POST 表单上使用唯一 token ,并验证任何发布到您站点的请求是否对当前用户具有有效 token 。还要确保 token 在一段时间后过期,以免它们永远存在。

关于php - 没有 CSRF token 的表单 : what are the risks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4732024/

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