csrf 防御

token 与 ajax 

主要是在cookie添加随机数, 因为攻击者 无法访问第三方网站的 cookie,  加上httponly, 即使是xss也无法访问了

 

也可以在页面上嵌入一个 token , 而且token每次提交完后都变化

 

另外易用性不太好, 可以通过手机验证码 ,  或者输入图片验证码防止

 

说明 

 

1. Token可以放在cookie中,在HTTP请求时,可以在form表单中加上一项<input type="hidden" value="your token">

 

提交给后台校验 POST提交的token是否和cookie中的token一致。 因为只要访问 网站1, 网站1的cookie就自动会带上,  即使从网站2发出的请求

CSRF的源站是获取不到cookie里的token的,所以它没办法模拟这样一个POST请求。

 

至于httponly,实际上是用于防止XSS了,一般来讲跟CSRF关系不大。

 

2. 可以在每个ajax请求的url 带上 sid, 因为 csrf 攻击者不知道 sid, 所以校验sid是否正确就可以了

    

 

 

 

 

 

node 防御