zoukankan      html  css  js  c++  java
  • XSS——跨站脚本攻击

    跨站点脚本攻击:通过对网页注入恶意脚本,成功地被浏览器执行,来达到攻击的目的。


    一、XSS攻击类型与原理
    1. 反射型XSS攻击
    非持久性攻击,黑客使用社交性的交互技巧诱导用户点击访问目标服务器的链接,但是链接中内嵌了恶意代码,目标服务器将恶意代码原样返回,用户浏览器执行恶意代码,从而达到攻击目的。

    攻击原理流程图:

    (图来自:https://blog.csdn.net/qq_36119192/article/details/82469035#XSS

    2. 存储型XSS攻击
    持久性攻击,黑客将恶意脚本提交到目标服务器,目标服务器将其存储在数据库中,当用户访问这些数据的时候,目标服务器将恶意脚本原样返回,用户浏览器执行恶意脚本,从而达到攻击目的。任何访问该数据内容的用户都会受到攻击,其危害性远大于反射型XSS攻击。

    攻击原理流程图:

    (图来自:https://blog.csdn.net/qq_36119192/article/details/82469035#XSS

    3. DOM型XSS攻击
    非持久性攻击,不经过后端,是基于文档对象模型的一种漏洞,是通过url传入参数去控制触发的,其实也属于反射型XSS攻击。


    二、XSS攻击的危害
    通过XSS攻击,攻击者可以盗取用户的cookie信息,以及一些私密数据信息。


    三、XSS攻击的防御
    1. 对用户提交的所有内容进行过滤,对url中的所有参数进行过滤,对特殊字符进行转义,过滤掉任何会导致脚本执行的相关内容。
    2. 对动态输出到用户浏览器页面上的内容进行html编码,使脚本无法在浏览器中执行。
    3. 设置会话cookie的http only属性,使得客户端无法通过脚本访问cookie。
    在PHP中,可以使用以下函数对数据进行过滤来防止XSS攻击:
    strip_tags():删除HTML标签,保留一些原始数据。
    htmlentities():使用一些等价的字符替代一些常见的HTML标签。(&、"、'、<、>)
    htmlspecialchars():转义每一个可能的HTML标签。

  • 相关阅读:
    Lucene简介
    网页去重和网页反作弊
    一个不应该犯的错octave
    使用有道笔记
    向量操作的思想
    暗时间(介绍)-关于坚持的一个故事
    bootstrap插件学习-bootstrap.tab.js(读码)
    Bootstrap 实现CRUD示例及代码
    Bootstrap Table 使用示例及代码
    Bootstrap Table相关参数及属性、方法
  • 原文地址:https://www.cnblogs.com/wujuntian/p/12007222.html
Copyright © 2011-2022 走看看