当前位置:   article > 正文

什么是xss攻击?

什么是xss攻击

跨站脚本攻击(XSS),英文全称 Cross Site Script

  XSS攻击,一般是指黑客通过在网页中注入恶意脚本,当用户浏览网页时,恶意脚本执行,控制用户浏览器行为的一种攻击方式

  XSS攻击分为三种,反射型XSS、存储型XSS、DOM Based XSS.

了解什么是xss攻击,例子:

  本地服务器demo目录下有个index.php,通过提交信息显示在页面上显示数据。

  正常情况下:http:localhost/demo/index.php?name=张三,

  网页上就会显示张三出来,这个信息是用户在浏览器的url中输入的,可以正常显示在页面上,但是如果在页面中插入一段javascript代码,页面就无法正常显示了,

  例:http:localhost/demo/index.php?name=<script>window.open(http://www.fanyi.com)</script>,

  例子虽然简单但是体现xss攻击的完整流程。

1.反射性XSS

  也被称为非持久性XSS,这种攻击方式把XSS的Payload写在URL中,通过浏览器直接“反射”给用户。用户将一段含有恶意代码的请求提交给 Web 服务器,Web 服务器接收到请求时,又将恶意代码反射给了浏览器端,这种攻击方式通常需要诱使用户点击某个恶意链接,才能攻击成功。

2.存储型XSS

  又被称为持久性XSS,会把黑客输入的恶意脚本存储在服务器的数据库中。当其他用户浏览页面包含这个恶意脚本的页面,用户将会受到黑客的攻击。一个常见的场景就是黑客写下一篇包含恶意JavaScript脚本的博客文章,当其他用户浏览这篇文章时,恶意的JavaScript代码将会执行

3.DOM Based XSS

  基于 DOM 的 XSS 攻击是不牵涉到页面 Web 服务器的,其实就是利用后端代码的漏洞。它的特点是在 Web 资源传输过程或者在用户使用页面的过程中修改 Web 页面的数据.

 

XSS攻击的危害

我们把进行XSS攻击的恶意脚本成为XSS Payload。XSS Payload的本质是JavaScript脚本,所以JavaScript可以做什么,XSS攻击就可以做什么。

一个最常见的XSS Payload就是盗取用户的Cookie,从而发起Cookie劫持攻击。Cookie中,一般会保存当前用户的登录凭证,如果Cookie被黑客盗取,以为着黑客有可能通过Cookie直接登进用户的账户,进行恶意操作。

防御

其实如今一些流行的浏览器都内置了一些对抗XSS的措施,比如Firefox的CSP、IE 8内置的XSS Filter等。

将cookie等敏感信息设置为httponly,禁止Javascript通过document.cookie获得

对所有的输入做严格的校验尤其是在服务器端,过滤掉任何不合法的输入,比如手机号必须是数字,通常可以采用正则表达式.

净化和过滤掉不必要的html标签,比如:<iframe>, alt,<script> ;净化和过滤掉不必要的Javascript的事件标签,比如:onclick, onfocus等

转义单引号,双引号,尖括号等特殊字符,可以采用htmlencode编码 或者过滤掉这些特殊字符

HttpOnly

HttpOnly最早是由微软提出,并在IE6中实现的,至今已逐渐成为一个标准。浏览器将禁止页面的JavaScript访问带有HttpOnly 属性的Cookie。以下浏览器开始支持HttpOnly:

 

Microsoft IE 6 SP1+

Mozilla FireFox 2.0.0.5+

Mozilla Firefox 3.0.0.6+

Google Chrome

Apple Safari 4.0+

Opera 9.5+

一个Cookie的使用过程如下:

  Step1: 浏览器向服务器发送请求,这时候没有cookie。 

  Step2: 服务器返回同时,发送Set-Cookie头,向客户端浏览器写入Cookie。 

  Step3: 在该Cookie到期前,浏览器访问该域名下所有的页面,都将发送该Cookie。而HttpOnly是在Set-Cookie时标记的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/699705
推荐阅读
相关标签
  

闽ICP备14008679号