XSS攻击与CSRF攻击比较

XSS:Cross Site Scripting,跨站脚本攻击

原理:

网站webA的授信用户userA,利用网站合法接口输入或提交非法数据,而影响网站其他用户。
比如网站webA有允许用户评论的入口,正常用户发布的评论可能是“我是评论!”,而userA发的评论是“<a href='http://www.xss.com'>点我进入大保健</a>”。
网页显示评论的代码可能是这样的"<p>用户的评论</p>",网页在加载userA的评论时就会是“<p><a href='http://www.xss.com'>点我进入大保健</a></p>”,相当于在评论中插入了一个非法链接,网站其他用户加载评论时都将看到这个非法链接。
除了插入非法链接之外,userA甚至还可以插入script脚本,脚本可做的事情就更多了,修改dom、自动跳转页面、非法提交表单等等。

预防:

要预防跨站脚本攻击其实比较简单,就是不信任任何用户的输入,对用户输入进行过滤转义等。
比如对上面例子中的“<a href='http://www.xss.com'>点我进入大保健</a>”进行转义之后就变成了“<a href='http://www.xss.com'>点我进入大保健</a>”,这样其他用户看到的就不再是一个跳转链接了。

CSRF:Cross Site Request Forgery, 跨站域请求伪造

原理:

通过伪装来自受信任用户的请求来利用受信任的网站。
通俗的说就是攻击者利用了你的身份,发送了恶意请求。就好比黑客盗用了你的qq然后假装是你,骗你朋友要钱。


如上图所示,用户先登录网站A,然后访问恶意站点B,用户在恶意站点B中点击了一个链接,这个链接跳转回A网站的同时发送了一个恶意get请求,类似“http://weba.com/comment?comment=这个评论是webB伪造的”。除了get请求外,webB也可以伪造post请求。

 

预防:

验证Referer

webB伪造webA的请求时,Referer是webB,webA发现referer非法的时候就可以拒绝这个请求。

token校验

比如用户在访问webA时,会生成一个随机的token,以后每次访问webA时都带上token,服务端校验token是否合法。因为token具有随机性,所以webB就不能用普适的方法来伪造webA的请求。
token有各种实现方式,可以放在请求参数中也可以放在请求头中。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值