1。什么是XSS?跨站脚本(Cross-sitescripting,XSS)是攻击者向网站注入恶意脚本,等待用户访问网站,自动运行恶意脚本发起攻击的过程。不同的脚本可以达到不同的目的:窃取cookies、获取敏感信息。使用植入的Flash通过跨域权限设置进一步获取更高权限;或使用Java获得类似的操作。使用iframe、frame、XMLHttpRequest,或者上述的Flash作为(被攻击的)用户进行一些管理操作,或者进行一些通用的操作,比如发微博、加好友、发私信等。利用可攻击域被其他域信任的事实,请求一些通常不允许作为可信源的操作,例如进行不正当的投票活动。对一些访问量较大的页面进行XSS攻击,可以攻击一些小网站,达到DoS攻击的效果。二、XSS分为3种1、存储型(持久型)攻击者将恶意脚本注入服务器并存储起来,等待受害者请求脚本并在浏览器中自动运行。使用场景:攻击者在评论区提交带有恶意脚本的评论。如果服务器无法检测到恶意脚本,则恶意评论将存储在服务器数据库中。下次用户访问时,会自动获取并显示该评论。恶意脚本也会自动运行。//在评论区,直接提交以下内容。如果服务器不检查,则以下内容将存储在服务器数据库中。2、反射型(非持久型)获取用户登录过的sessioncookie单击恶意链接。http://www.example.com/transfer?s=3.用户浏览DOM类型将代码直接注入页面。例子:HTML中有一个锚点功能,就是通过#id来实现页面跳转。#下面的链接表示打开页面,将id为doc的元素滚动到页面顶部http://www.example.com/#doc#将doc改为script,然后访问这个页面,表示脚本会自动执行http://www.example.com/##备注:本例只是为了说明,现在的浏览器早就屏蔽了这类漏洞。3、如何防止XSS攻击?XSS来自用户提供的内容,只要过滤掉恶意代码,Node.js项目推荐使用xss库来完成这项工作。//1.安装npminstallxss//2.使用varxss=require('xss');varhtml=xss('');console.log(html);xss-官方网站4.xss相关工具xsshunter-记录XSS攻击者的ip等详细信息XSStrike-扫描网站XSS漏洞5.参考文档如何防止跨站脚本攻击(XSS)?
