XSS攻击:跨站脚本攻击(Cross Site Scripting),简单来说就是攻击者想尽一切办法将可执行的代码注入到网页中。
客户端的XSS攻击主要是DOM型,取出和执行恶意代码由浏览器端完成,属于JavaScript自身的安全漏洞。 服务端的XSS攻击主要分为:存储型与反射型。
防范方法:
1、转义字符
如escapeHTML() 方法将HTML元素编码,CSS编码,JS编码,URL编码等等,避免拼接HTML。
2、增加攻击难度(配置CSP)
CSP本质上就是建立白名单,开发者明确告诉浏览器哪些外部资源可以被加载或执行,我们只需要配置规则,如何拦截是由浏览器实现,可以通过这种方式尽量减少XSS攻击。
1、设置HTTP Header中的 Content-Security-Policy
Content-Security-Policy的值 | 含义 |
---|
default-src ‘self’ | 只允许加载本站资源 | img-src https://* | 只允许加载https协议图片 | child-src ‘none’ | 允许加载任何来源框架 |
2、设置meta标签方式
<meta charset="UTF-8" http-equiv="content-security-policy" content="child-src 'none';img-src https://*;">
3、校验信息
一些常见的数字、URL、电话号码、邮箱地址等。 开启浏览器XSS防御:Http Only Cookie,禁止JavaScript读取某些敏感Cookie
|