Cross Site Script 跨站脚本攻击
在 web页面注入脚本,使用 JS窃取用户信息
为了和层叠样式表(Cascading Style Sheet)有所区分,因而在安全领域叫做 XSS
XSS预防
- HttpOnly 防止劫取 Cookie
 - 用户的输入检查
 - 服务端的输出检查
 
过滤输入
不要相信前端的任何输入,必须对前端的输入进行过滤
对用户的输入进行过滤,移除用户输入的
- html标签过滤
- escape 过滤 html标签
 
 - style节点
 - script节点
 - iframe节点 ```jsx npm install xss
 
ctx.help.escape()
<a name="R8H9s"></a>### HTML编码HTML Entity编码<a name="ObUvt"></a>### cookie将重要的 cookie,设置成 httpOnly,禁止通过 js获取 cookie<a name="LJNLQ"></a>## XSS攻击场景XSS出现的根源:用户输入的内容会执行危险的代码,例如1. 留言1. 发帖子,发文章1. 添加商品,预览商品1. 店铺装修1. 低代码平台的自定义代码1. 在网站上注入恶意的客户端代码1. input1. image1. 恶意脚本一般包括 JavaScript,有时也会包含 HTML 和 Flash1. 共同点为:将一些隐私数据像 cookie、session 发送给攻击者,1. 将受害者重定向到一个由攻击者控制的网站,在受害者的机器上进行一些恶意操作<a name="bhEHI"></a>### DOM-base攻击利用 DOM本身的缺陷攻击,例如<br />img标签 onerror属性<br />a href属性```jsx<img src="./user.jpg" onerror="javascript:alert('img xss')">
存储型攻击
表单提交的数据存在恶意代码,被保存到目标网站的服务器中
反射性攻击
恶意代码并没有被保存在目标网站,
通过引诱用户点击一个链接,到目标网站的恶意链接来实施攻击。
