CSRF(跨站请求伪造)、XSS(跨站脚本攻击)、Click Jacking(点击劫持)的理解与处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36771997/article/details/84780975

一、xss跨站脚本攻击(Cross Site Scripting)

如果网站带有评论功能并将评论内容直接存到服务器中,那么显示评论的时候就可能遭到之前恶意用户恶意评论的攻击
原理主要是通过在评论中输入html标签,如标签,就相当于往你的网页中嵌入了一段脚本
理论上,所有可输入的地方没有对输入数据进行处理的话,都会存在xss漏洞
例如在评论框中输入:

<script>
  while(true) {
    alert('Welcome!');
  }
</script>
如此一来,当再次刷新页面的时候,你的网站就会一直显示”Welcome”

或者:

<script>
  alert(document.cookie);
</script> 
这段脚本将恶意读取你的cookie信息

防御方法:

要坚持一个原则:永远不要相信用户的输入,对每一条输入都进行验证
可以用正则表达式验证输入内容的合法性
二、csrf跨站请求伪造(Cross-site Request Forgery)

攻击者盗用你的身份,发送恶意请求 
要完成一次csrf攻击,被攻击者需要完成两个操作: 
1. 登录收信任网站A,并在本地生成cookie 
2. 在与A的会话结束前,访问危险网站B(危险网站B甚至可能是一个存在漏洞的受人信任的网站)

防御方法:

在客户端表单增加伪随机数(但不能防止对方再利用xss攻击手段获得你的cookie)
在每次做类似提交表单的操作时都通过验证码进行验证
为每个表单设置不同的伪随机数(但会有并行会话兼容问题)
三、点击劫持(Click Jacking)

在我们浏览网页时经常会出现一些令人讨厌的信息,比如一些中奖通知或者色情信息,但在网页中散布这些内容却是不法分子用来诱惑被攻击者点击的常用手段,

点击劫持就是利用透明的iframe或者被覆盖的iframe,通过诱骗用户在该网页上点击某些按钮,触发iframe页面上的点击操作

防御方法:

1. 既然点击劫持的核心是iframe的嵌套,那么完全可以通过写一段javascript代码来禁止iframe的嵌套:

<script type="text/javascript">
   if (window!=top) // 判断当前的window对象是否是top对象
   top.location.href =window.location.href; // 如果不是,将top对象的网址自动导向被嵌入网页的网址
</script>  

2. X-FRAME-OPTIONS是目前最可靠的方法。

X-FRAME-OPTIONS是微软提出的一个http头,专门用来防御利用iframe嵌套的点击劫持攻击。

并且在IE8、Firefox3.6、Chrome4以上的版本均能很好的支持。

猜你喜欢

转载自blog.csdn.net/qq_36771997/article/details/84780975