zoukankan      html  css  js  c++  java
  • 什么是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时标记的。

     

  • 相关阅读:
    atitit.nfc 身份证 银行卡 芯片卡 解决方案 attilax总结
    atitit.php 流行框架 前三甲为:Laravel、Phalcon、Symfony2 attilax 总结
    Atitit.执行cmd 命令行 php
    Atitit. 图像处理jpg图片的压缩 清理垃圾图片 java版本
    atitit。企业组织与软件工程的策略 战略 趋势 原则 attilax 大总结
    atitit. 管理哲学 大毁灭 如何防止企业的自我毁灭
    Atitit.java的浏览器插件技术 Applet japplet attilax总结
    Atitit.jquery 版本新特性attilax总结
    Atitit. 软件开发中的管理哲学一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向
    (转)获取手机的IMEI号
  • 原文地址:https://www.cnblogs.com/0314dxj/p/11849502.html
Copyright © 2011-2022 走看看