据我所知,Web开发人员应该创建令牌并将其放在隐藏的表单字段中以防止CSRF攻击.此外,他应该在会话中保存相同的令牌,然后,在提交表单时 - 检查令牌是否相等.
我开始质疑......是否有必要对所有形式采用这种技术?我的意思是,想象一下为登录创建的表单.如果没有CSRF保护,我看不到对网站和/或用户造成的任何伤害,因为用户没有特权(就像他登录时一样).注册也一样......我是对的吗?
PS如果我错了,请向我解释这个概念.
CSRF试图阻止的危险是当您遇到以下情况时:
有时,这是通过诱使用户在不知情的情况下发出HTTP请求,例如在图像的源属性中.
您要保护的表单是需要此权限的表单.
关于这实际上没有意义的疯狂,机会,Chris Shiflett有一篇关于CSRF的精彩文章(您可能已经读过很多文章:/)
一般来说,您希望保护您的表单,只要其提交将导致内容/状态的更改; 无论是添加,删除,编辑或与外部源共享("分享xyz!").
您不需要保护的表单的示例是搜索框,因为它不会导致内容的任何更改.
如果您不确定,任何会导致保存/删除某些内容的表单(无论是否在您的网站上)都应受到保护.
如果你真的不确定只是添加令牌,不需要任何安全费用.