webx解决csrf漏洞

要完成一次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

 

最后欢迎大家访问我的个人网站:1024s

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值