问题描述
|
据我了解,Web开发人员应创建令牌并将其放在表单的隐藏字段中,以防止CSRF攻击。另外,他应该在会话中保存相同的令牌,然后在提交表单时-检查令牌是否相等。
我开始质疑...是否有必要对所有形式进行这项技术?我的意思是,想象一下创建用于登录的表单。如果没有CSRF保护,我看不到对站点和/或用户有任何危害,因为用户没有特权(就像他将要登录一样,也将拥有特权)。注册也一样...对吗?
附言如果我错了,请向我解释一下这个概念。
解决方法
一般而言,您想在表单提交时随时更改内容/状态来保护您的表单;是添加,删除,编辑还是与外部源共享(\“在xyz上共享!\”)。
搜索框是您不需要保护的一种形式,因为它不会导致内容的任何更改。
如果您不确定,那么任何会导致某些内容被保存/删除的表格(无论它是否在您的网站上)都应该受到保护。
而且,如果您真的不确定只需添加令牌,就不需要花费任何钱来保证安全。
,CSRF试图防止的危险是在以下情况下:
用户已登录或具有任何权限,并且具有一定级别的权限
坏人未经用户允许就利用了该权限
有时,这是通过欺骗用户在不知情的情况下发出HTTP请求来实现的,例如在图像的source属性中。
您要保护的表单是需要此权限的表单。
克里斯·史弗莱特(Chris Shiflett)疯狂地,偶然地认为这没有实际意义,他在CSRF上发表了一篇很棒的文章(您可能已经读过:/)