什么是xss攻击?

时间:2019-11-20
本文章向大家介绍什么是xss攻击?,主要包括什么是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时标记的。

 

原文地址:https://www.cnblogs.com/0314dxj/p/11849502.html