漏洞通用描述

跨站脚本攻击(Cross Site Scripting),简称XSS漏洞

该页面直接将用户在 HTML 页面中的输入(通常是参数值)加载到前端页面,没有预先加以清理。 如果脚本在响应页面中返回由 JavaScript 代码组成的输入,浏览器便可以执行此输入。 因此,有可能形成指向站点的若干链接,且其中一个参数包含恶意的 JavaScript 代码。 该代码将在站点上下文中(由用户浏览器)执行,这使得该代码可以直接访问用户当前cookie,继而使用各种方法发送到攻击者服务器,从而盗取用户账号。

任何存在输入/输出方法(包括GET与POST)的页面皆可能存在XSS漏洞,如留言回复、在线聊天、内容发布等。

攻击依照下列方式继续进行:攻击者诱惑合法用户单击攻击者生成的链接。 用户单击该链接时,便会生成对于 Web 站点的请求,其中的参数值含有恶意的 JavaScript 代码。 如果 Web 站点将这个参数值嵌入在响应的 HTML 页面中(这正是站点问题的本质所在),恶意代码便会在用户浏览器中运行。

常见修复方案

注: 修复时请不要只针对测试用例中的关键字进行屏蔽(如: 只过滤alert)

如果是 json 或 jsonp 接口出现XSS问题,请检查一下header头中的Content-type是否已设置为application/json,正常情况下Content-type为json的页面不会引起XSS攻击

XSS修复原理:

过滤用户输入的内容,检查用户输入的内容中是否有非法内容。如<>(尖括号)、"(引号)、 '(单引号)、%(百分比符号)、;(分号)、()(括号)、&(& 符号)、+(加号)等,如果参数为int类型,则严格限定只允许0-9的整型数字。

JAVA语言的业务 可以使用基础安全部开发的WAQ安全库来修复XSS漏洞

  1. HTML编码:WAQ.forXSS().filterHTML
  2. URL编码:WAQ.forXSS().filterURL
  3. Javascript转义 WAQ.forXSS().filterJS
  4. 富文本过滤 WAQ.forXSS().filterRichText

PHP语言,无富文本需求的业务 可以使用下面这些函数对xss漏洞的参数进行过滤

  1. htmlspecialchars() 函数,用于转义处理在页面上显示的文本。
  2. htmlentities() 函数,用于转义处理在页面上显示的文本。
  3. strip_tags() 函数,过滤掉输入、输出里面的恶意标签。
  4. header() 函数,使用header("Content-type:application/json"); 用于控制 json 数据的头部,不用于浏览。
  5. urlencode() 函数,用于输出处理字符型参数带入页面链接中。
  6. intval() 函数用于处理数值型参数输出页面中。

PHP语言、有富文本需求的业务

如要使用一些常用的 html 标签,以美化页面显示,如留言、小纸条。那么在这样的情况下,要采用白名单的方法使用合法的标签显示,过滤掉非法的字符。

Node.js语言的业务

使用node-validator,具体可参考nodejs官网手册

Python语言的业务

一般框架会自带一些XSS防御方法,Django 在模板输出时会默认对文本进行HTML实体编码,默认不会触发XSS问题,如果发生XSS请检查html模板变量输出处是否主动使用了safe filter。

未使用web框架可使用 cgi.escape() 对参数进行过滤

防止XSS漏洞攻击常用解决方案相关推荐

  1. php的服务器变量$SERVER以及防止$_SERVER['PHP_SELF']造成的XSS漏洞攻击及其解决方案

    一.背景 突然想起来之前面试的一些面试题,让我写出几个服务器变量$SERVER代表的意思..实话实说,这些东西已经忘记很久了,都是用的时候直接上网查,今天再复习复习吧. 二.$SERVER $_SER ...

  2. 网站安全之XSS漏洞攻击以及防范措施

    在网站开发中,安全问题是重中之重的问题,特别像一个sql注入,XSS漏洞攻击,等的防范,如果不做好,网站将存在很大的隐患 XSS漏洞是网站漏洞中最容易出现的一种,至少现在的各大网站中基本都存在,传闻只 ...

  3. java前端提示反射型xss_解决反射型XSS漏洞攻击

    1 /* 2 * Copyright (C), 2001-2019, xiaoi机器人3 * Author: han.sun4 * Date: 2019/2/28 11:395 * History:6 ...

  4. XSS(跨站脚本攻击) - 常用代码大全

    XSS(跨站脚本攻击) - 常用代码大全: 2020-03-05更新:增加42条xss代码 1'"()&%<acx><ScRiPt >prompt(91514 ...

  5. ASP.Net防范XSS漏洞攻击的利器HtmlSanitizer

    项目名称:HtmlSanitizer NuGet安装指令:Install-Package HtmlSanitizer 官方网站:https://github.com/mganss/HtmlSaniti ...

  6. 新浪微博的XSS漏洞攻击过程详解

    今天晚上(2011年6月28日),新浪微博出现了一次比较大的XSS攻击事件.大量用户自动发送诸如:"郭美美事件的一些未注意到的细节","建 党大业中穿帮的地方" ...

  7. 跨站脚本攻击之反射型XSS漏洞【转载】

    转载自FovWeb.com 如果一个WEB应用程序使用动态页面传递参数向用户显示错误信息,就有可能会造成一种常见的XSS漏洞.一般情况下,这种页面使用一个包含消息文本的参数,并在页面加载时将文本返回给 ...

  8. XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析

    2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...

  9. java反射行跨站脚本攻击_跨站脚本攻击之反射型XSS漏洞【转载】

    如果一个WEB应用程序使用动态页面传递参数向用户显示错误信息,就有可能会造成一种常见的XSS漏洞.一般情况下,这种页面使用一个包含消息文本的参数,并在页面加载时将文本返回给用户.对于开发者来说,使用这 ...

最新文章

  1. python图片-Python图片处理
  2. 微电子所在阻变存储器研究领域取得新进展
  3. git clone --recursive慢_Git使用之submodule
  4. 【Flink】Flink RocksDB内存占用一直增大 state.backend.rocksdb.memory.managed
  5. 光源时间_【精品透视】UVLED紫外固化光源崭露头角!
  6. 华为鸿蒙os公测需要多久,华为系统公测到正式版需要多久
  7. 删除排序数组中的重复数字
  8. 【读书笔记】A Swift Tour
  9. Linux下汇编语言学习笔记76 ---
  10. BZOJ 1507 [NOI2003]Editor
  11. 阿里云 php shopex,开shopex
  12. 【氵贴慎点】matlab啊啊啊
  13. 【软件测试手册2021版】测试题总结
  14. 翻译程序和解释程序的区别
  15. 用计算机弹出微微,电脑显示器轻微闪烁怎么办
  16. 论文阅读笔记-FGN: Fusion Glyph Network for Chinese Named Entity Recognition
  17. 小米运动同步到Google Fit健身, 解决睡眠和体重不同步的情况
  18. python运行js---execjs 使用
  19. Android 混淆机制详解
  20. 智慧海洋建设——Task1 地理数据分析常用工具学习心得

热门文章

  1. 2020人口普查全国人口学历分布情况
  2. 阿里云“快进”背后:云计算形势重构,深耕产业数字化
  3. html中列表前的序号用带圆圈的数字表示及存在的问题
  4. OpenGL-聚光灯-spot
  5. 小白学习MySQL - 增量统计SQL的需求
  6. HDU6656 2019 Multi-University Training Contest 7
  7. 2017下半年掘金日报优质文章合集:Android篇,android开发工程师
  8. 知乎个人创作者如何认证?附图文认证教程
  9. python学习之面向对象(二)
  10. ati hd 6470m驱动