HCL AppScan Standard扫描有关前端Xss安全报告处理

报告问题描述
1.“X-Content-Type-Options”头缺失或不安全
2. “X-XSS-Protection”头缺失或不安全
3. HTTP Strict-Transport-Security 头缺失或不安全
4. “Content-Security-Policy”头缺失或不安全
5. 使用 HTTP 动词篡改的认证旁路
前面四个问题直接在nginx中添加响应头:

add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=31536000;includeSubDomains";
add_header Content-Security-Policy "default-src 'self' 'unsafe-eval'; img-src *";

HCL AppScan Standard扫描有关前端Xss安全报告处理_第1张图片
相关解释:

1.X-Frame-Options: 响应头表示是否允许浏览器加载frame等属性,有三个配置DENY禁止任何网页被嵌入,SAMEORIGIN只允许本网站的嵌套,ALLOW-FROM允许指定地址的嵌套;
2.X-Content-Type-Options: 响应头用来指定浏览器对未指定或错误指定Content-Type资源真正类型的猜测行为,nosniff表示不允许任何猜测(即关闭浏览器的MIME嗅探功能)。在通常的请求响应中,浏览器会根据Content-Type来分辨响应的类型,但当响应类型未指定或错误指定时,浏览会尝试启用MIME-sniffing来猜测资源的响应类型,这是非常危险的。例如一个.jpg的图片文件被恶意嵌入了可执行的js代码,在开启资源类型猜测的情况下,浏览器将执行嵌入的js代码,可能会有意想不到的后果;
3.Strict-Transport-Security: max-age=31536000;includeSubDomains:指示浏览器只能通过HTTPS访问资源,禁止HTTP的方式访问;
4.X-XSS-Protection: 表示启用XSS过滤(禁用过滤为X-XSS-Protection: 0),mode=block表示若检查到XSS攻击则停止渲染页面;
5.Content-Security-Policy: HTTP 响应头 Content-Security-Policy 允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除了少数例外情况,设置的政策主要涉及指定服务器的源和脚本结束点。

问题5就是没有特指允许哪些请求方式,在一般项目项目中就只有get/post请求,所以在nginx配置中指定一下允许那些请求类型即可
HCL AppScan Standard扫描有关前端Xss安全报告处理_第2张图片

if ($request_method !~ ^(GET|POST)$ ) {
    return 403;
}
或者
if ($request_method !~* GET|POST) {
    return 403;
}

HCL AppScan Standard扫描有关前端Xss安全报告处理_第3张图片
注:这边axios有个跨域探测会使用options方法所以这边放开了
最终修改完nginx配置后重启后响应头信息如下:
HCL AppScan Standard扫描有关前端Xss安全报告处理_第4张图片
参考:

  1. https://www.cnblogs.com/damoblog/p/16135506.html
  2. https://blog.csdn.net/u014465934/article/details/84199171
  3. https://blog.csdn.net/weixin_45894220/article/details/126985628

你可能感兴趣的:(前端,前端,xss,安全)