我所理解的, CSRF - 攻击的工作原理如下:
为防止此网站使用网页随机生成的令牌并存储为会话,您的网页会将此令牌与请求一起发送,如一个参数。由于这使网站知道用户真正访问过网站并执行了操作。
而不是发送令牌作为参数。您能否将已登录的Cookie 作为参数发送?
由于Cookie是特定于网站的,因此我无法看到其他网页可以将此Cookie作为参数发送到您的网站。
答案 0 :(得分:2)
是的,您可以,假设“登录的cookie”是加密安全的会话标识符。
这种CSRF防御方法称为Double Submit Cookies:
双重提交cookie定义为在两者中发送随机值 一个cookie和一个请求参数,服务器验证是否 cookie值和请求值相等。
通常此值与会话ID分开,但如果会话ID是静态的,则没有理由不使用它。
在CSRF攻击中,攻击者只能使用受害者的浏览器将受害者的cookie提交到目标站点。攻击者无法实际读取cookie值,也无法将此值的副本设置为POST参数。因此,双提交cookie是一个很好的CSRF防御。
请注意,建议不要使用GET参数,因为此值可能会泄漏到the referer
header。
答案 1 :(得分:0)
我发现为什么这不起作用,如果你发送你的cookie作为参数,攻击者总会有办法使用它(jquery?)函数,或类似的。因此,您始终必须从网页获取令牌。您可以打印cookie然后以这种方式获取它,但是将会话令牌作为网站的隐藏输入会更容易。