XSS
XSS(cross site Script)
XSS 的分类:
- 反射型。即相信用户的输入,直接输出到页面导致 JS 脚本执行
- 存储型。指输入的内容直接存入数据库。这样以后只要取出并展现这条数据时就会执行 JS。
解决方案:
-
转义
- HTML 实体 (
<>&")。用在 HTML 或者属性中输出内容时。 - JS Encode (
\\r,\\n,\u1234等),用于在 JS 或者事件或者 CSS 中输出内容时 - URIComponent (
%12),用于在 URL 上输出内容时
- HTML 实体 (
将重要的 cookie 设置为 http-only
将表单项内容的类型进行限制,如只能填写数字,只能填写某些字符等。
如果有用户输入作为 HTML 直接输出到页面的,需要过滤敏感标签,如
<script>,<iframe>等