漏洞通用描述
跨站脚本攻击(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修复原理:
过滤用户输入的内容,检查用户输入的内容中是否有非法内容。如<>(尖括号)