什么时候需要用令牌保护表格(CSRF攻击)?

daG*_*vis 4 php csrf token

据我所知,Web开发人员应该创建令牌并将其放在隐藏的表单字段中以防止CSRF攻击.此外,他应该在会话中保存相同的令牌,然后,在提交表单时 - 检查令牌是否相等.

我开始质疑......是否有必要对所有形式采用这种技术?我的意思是,想象一下为登录创建的表单.如果没有CSRF保护,我看不到对网站和/或用户造成的任何伤害,因为用户没有特权(就像他登录时一样).注册也一样......我是对的吗?

PS如果我错了,请向我解释这个概念.

sdl*_*rhc 6

CSRF试图阻止的危险是当您遇到以下情况时:

  1. 用户已登录或其他任何内容,并具有一定级别的权限
  2. 在未经用户许可的情况下,坏人利用该权限

有时,这是通过诱使用户在不知情的情况下发出HTTP请求,例如在图像的源属性中.

您要保护的表单是需要此权限的表单.

关于这实际上没有意义的疯狂,机会,Chris Shiflett有一篇关于CSRF的精彩文章(您可能已经读过很多文章:/)


Lep*_*eus 5

一般来说,您希望保护您的表单,只要其提交将导致内容/状态的更改; 无论是添加,删除,编辑或与外部源共享("分享xyz!").

您不需要保护的表单的示例是搜索框,因为它不会导致内容的任何更改.

如果您不确定,任何会导致保存/删除某些内容的表单(无论是否在您的网站上)都应受到保护.

如果你真的不确定只是添加令牌,不需要任何安全费用.