webx解决csrf漏洞

来源:互联网 发布:服装数据分析公式 编辑:程序博客网 时间:2024/05/18 20:05

要完成一次CSRF攻击,受害者必须依次完成两个步骤:

1.登录受信任的网站A,并在本地生成Cookie。

2.在不登出A的情况下,访问危险网站B.


解决方案:

在请求地址中添加token并验证。


要抵御CSRF,关键在于在请求中放入黑客所不能伪造的验证信息,并且该信息不存在于cookie之中,可以在HTTP请求中以参数的形式加入一个随机产生的token,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。


token 可以在用户登陆后产生并放于 session 之中,然后在每次请求时把 token 从 session 中拿出,与请求中的 token 进行比对,但这种方法的难点在于如何把 token 以参数的形式加入请求。对于 GET 请求,token 将附在请求地址之后,这样 URL 就变成 http://url?csrftoken=tokenvalue。 而对于 POST 请求来说,要在 form 的最后加上 <input type=”hidden” name=”csrftoken” value=”tokenvalue”/>,这样就把 token 以参数的形式加入请求了。



在webx的pipeline.xml文件中加入:

<services:pipeline>    <pl-valves:checkCsrfToken /> </services:pipeline>

在模板文件的表单中加入:

$csrfToken.hiddenField



原创粉丝点击