安全01-后台增加Referer校验防范CSRF跨站请求伪造

本文介绍了CSRF(跨站请求伪造)攻击的原理,以及如何通过验证HTTP Referer字段来防范此类攻击。攻击者利用Referer字段的可篡改性或缺失可能导致安全风险。防御措施包括检查请求的Referer是否与预期的官网域名一致,但这种方法存在浏览器兼容性和安全性的挑战。在实际应用中,通常结合其他验证机制如token来增强安全性。

CSRF,中文名字,跨站请求伪造。攻击者(黑客,钓鱼网站)盗用了你的身份,以你的名义发送恶意请求,这些请求包括发送邮件、发送消息、盗取账号、购买商品、银行转账,从而使你的个人隐私泄露和财产损失。

防范方案
1、验证HTTP Referer字段。
2、请求地址中添加token并验证(token不放在cookie中,放在http请求参数中,服务端对其进行验证)
3、将token加入http头属性中,避免了token出现在浏览器中,被泄露。

Referer验证方案:
根据HTTP协议,在HTTP头部中有一个Referer字段,它记录了该HTTP请求所在的地址,表示HTTP请求从那个页面发出的。比如当你访问 http://xxx.com/ebank?account=6000001&amount=10000,用户必须先登录该网站官网,然后通过点击页面的的按钮来触发转账事件。此时,转账请求的Referer值就是转账页面所在的URL,通常是以xxx.com域名开头的地址。如果攻击者要实行CSRF攻击,那么他只能在自己的站点构造请求,此时Referer的值就指向黑客自己的网站。因此要防御CSRF攻击,该网站后台只需要对每一个转账请求验证其Referer值,如果是以xxx.com开头的域名,则是合法请求,相反,则是非法请求并拒绝。这种方法的好处就是简单易行,只需要在后台添加一个拦截器来检查Referer即可。然而这种办法并不是万无一失,Referer的值是由浏览器提供的,一些低级的浏览器可以通过某种方式篡改Referer的值,这就给了攻击者可乘之机;而一些高级浏览器处于安全考虑,可以让用户设置发送HTTP请求时不再提供Referer值,这样当他们正常访问该网站时,因为没有提供Referer值而被误认为CERF攻击,拒绝访问。实际应用中通常采用第二种方法来防御CSRF攻击。

这里简绍第一种方案,验证HTTP Referer字段,在JAVA公共请求拦截器类中,新增对referer的校验,检查请求referer是否与官网域名一致。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值