
360浏览器通过动态配置内容安全策略(CSP)、部署XSS防护HTTP头、强化输入过滤,并结合浏览器沙箱限制DOM操作,从攻击源头拦截反射型、存储型XSS,同时针对DOM型XSS优化JavaScript执行环境,形成多层次的XSS防御体系,尤其针对国内常见攻击场景进行了工程化优化。
首先,XSS攻击分为三类:
http://example.com/search?q=<script>alert('XSS')</script>)。window.location.href = 'http://evil.com?data=<script>alert('XSS')</script>',脚本在客户端执行)。防护措施:
Content-Security-Policy: script-src 'self' 'sha256...')设置资源加载白名单,禁止外部恶意脚本执行。360浏览器支持动态配置,根据请求来源(如国内CDN)调整策略,例如针对阿里云、腾讯云等常见CDN配置允许的脚本来源,避免因策略过严导致页面功能异常。X-XSS-Protection: 1; mode=block),检测到响应中存在恶意脚本时,尝试清除并阻止执行,需配合CSP使用(CSP阻止脚本加载,X-XSS-Protection处理已加载的响应中的脚本)。< 转义为 <),防止恶意脚本注入,主要针对存储型XSS。eval、innerHTML 等DOM操作(例如拦截 document.body.innerHTML = '<script>alert('XSS')</script>'),防止恶意脚本执行。| 防护措施 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| CSP | HTTP头(如 Content-Security-Policy) | 通过白名单控制资源加载,阻止跨域恶意脚本 | 反射型、存储型XSS(尤其是跨域脚本) | 需正确配置,避免误禁用正常资源;动态配置需根据业务调整 |
| X-XSS-Protection | HTTP头(如 X-XSS-Protection: 1; mode=block) | 浏览器内置的XSS防护,检测并清除响应中的恶意脚本 | 反射型XSS(配合CSP) | 旧版浏览器(如IE8)可能不兼容;需CSP配合 |
| 输入过滤 | 服务器端对用户输入的验证、转义 | 防止用户输入中包含恶意脚本 | 存储型XSS(如用户评论、表单数据) | 需处理所有输入,包括DOM型XSS的输入(如URL参数) |
| DOM操作限制 | 浏览器内核或扩展限制JavaScript的 eval、innerHTML 等方法 | 防止DOM型XSS通过JavaScript操作DOM | DOM型XSS | 需确保不影响正常业务逻辑,可通过白名单允许特定场景 |
反射型XSS攻击与防护:
http://example.com/search?q=<script>alert('XSS')</script>,服务器返回包含恶意脚本的页面。script-src 'self',禁止外部脚本加载,恶意脚本无法执行。q 参数进行转义,如 q=<script>alert('XSS')</script> 转义为 q=<script>alert('XSS')</script>(实际编码后)。DOM型XSS攻击与防护:
window.location.href = 'http://evil.com?data=<script>alert('XSS')</script>',导致客户端执行恶意脚本。eval 和 innerHTML 等DOM操作,例如拦截 document.body.innerHTML = '<script>alert('XSS')</script>',防止脚本执行。同时,CSP的 script-src 'self' 也能阻止外部脚本加载,但DOM型XSS需结合沙箱限制。面试官您好,360浏览器防止XSS攻击主要通过多技术组合:首先,内容安全策略(CSP)通过动态配置白名单,比如针对国内CDN调整策略,禁止外部恶意脚本加载;其次,X-XSS-Protection HTTP头利用浏览器内置机制,检测并清除响应中的恶意脚本;再者,服务器端对用户输入进行过滤和转义,防止数据中包含恶意代码。同时,浏览器通过限制 eval、innerHTML 等DOM操作,拦截DOM型XSS。这些措施从攻击源头拦截反射型、存储型XSS,并针对DOM型优化,形成多层次防御,尤其针对国内常见攻击场景进行了工程化优化。
问:CSP的动态配置具体如何实现?比如如何根据请求来源调整策略?
回答:360浏览器支持根据请求的来源域名(如国内CDN的域名)动态调整CSP策略,例如通过配置文件或API,为不同来源设置不同的脚本来源白名单,避免因策略过严导致页面功能异常。
问:如何处理DOM型XSS的防护?具体限制哪些JavaScript方法?
回答:通过浏览器内核或扩展限制 eval、innerHTML、outerHTML 等DOM操作,例如拦截这些方法调用,防止恶意脚本通过JavaScript操作DOM执行。
问:CSP配置错误会导致什么问题?如何排查?
回答:CSP配置错误可能导致页面加载失败或功能异常(如图片、脚本无法加载),排查时可通过浏览器开发者工具查看CSP错误日志,分析违规的请求来源,调整策略为更宽松的配置。
问:与Chrome相比,360浏览器的XSS防御有何特色?
回答:360浏览器在CSP动态配置和针对国内攻击场景的优化上更具特色,例如更灵活的CDN策略支持,以及结合浏览器沙箱的DOM操作限制,更贴合国内用户的攻击环境。
问:输入过滤在防御DOM型XSS时有什么局限性?
回答:输入过滤主要针对服务器端输入,而DOM型XSS是通过JavaScript操作DOM,服务器端无法直接过滤,需结合浏览器对DOM操作的沙箱限制,否则仍可能被攻击。