AppScan漏洞风险处理
文章主要记录了一些由IBM Security AppScan Standard扫描的漏洞以及对应的修复方案,主要的应用技术架构为java的springboot单体
·
漏洞问题以及修复
本文主要记录一些由Appscan扫描出来的漏洞问题和修复方式,项目的是java项目,技术栈主要是springboot的一个单体结构。
漏洞 | 是否已修复 | 处理方式 |
---|---|---|
1.Content-Security-Policy”头缺失或不安全 | 是 | 后台过滤器响应头设置返回 |
2.X-Content-Type-Options”头缺失或不安全 | 是 | 后台过滤器响应头设置返回 |
3.X-XSS-Protection”报头缺失或不安全 | 是 | 后台过滤器响应头设置返回 |
4.HTTP Strict-Transport-Security 头缺失或不安全 | 是 | 后台过滤器响应头设置返回 |
5.加密会话(SSL)Cookie 中缺少 Secure 属性 | 是 | nginx.config设置 |
6.发现可高速缓存的 SSL 页面 | 是 | 后台过滤器响应头设置返回 |
7.支持较老的 TLS 版本 | 是 | nginx.config设置 |
8.自动填写未对密码字段禁用的 HTML 属性 | 是 | html修改 |
9.检测到 SHA-1 密码套件 | 是 | nginx.config设置 |
1、“Content-Security-Policy”头缺失或不安全
修复方案
自定义拦截器中响应头新增Content-Security-Policy参数
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
response.addHeader("Content-Security-Policy","object-src 'self'");
2、“X-Content-Type-Options”头缺失或不安
修复方案
自定义拦截器中响应头新增X-Content-Type-Options参数
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
response.addHeader("X-Content-Type-Options","nosniff");
3、“X-XSS-Protection”头缺失或不安
修复方案
自定义拦截器中响应头新增X-XSS-Protection参数
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
response.addHeader("X-XSS-Protection","1; mode=block");
4、HTTP Strict-Transport-Security 头缺失或不安
修复方案
自定义拦截器中响应头新增Strict-Transport-Security参数
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
response.addHeader("Strict-Transport-Security","max-age=63072000; includeSubdomains; preload");
5、加密会话(SSL)Cookie 中缺少 Secure 属性
修复方案
nginx配置中找到重置cookie
server {
listen 80;
server_name kkguan.com;
rewrite ^(.*)$ https://kkguan.com/$1 permanent;
}
server {
listen 443 ssl;
add_header Set-Cookie "HttpOnly";
add_header Set-Cookie "Secure";
6、发现可高速缓存的 SSL 页面
修复方案
自定义拦截器中响应头新增Cache-Control参数
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
response.addHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.addHeader("Pragma", "no-cache");
response.addHeader("Expires", "0");
7、支持较老的 TLS 版本
修复方案
nginx配置中找到ssl protocols,去掉TLSv1 TLSv1.1
server {
listen 80;
server_name kkguan.com;
rewrite ^(.*)$ https://kkguan.com/$1 permanent;
}
server {
listen 443 ssl;
ssl_protocols TLSv1.2 TLSv1.3;
8、自动填写未对密码字段禁用的 HTML 属性
修复方案
对应的input 将“autocomplete”属性正确设置为“off”
9、检测到 SHA-1 密码套件
修复方案
nginx配置中找到ssl_ciphers ,限制密码套件
server {
listen 80;
server_name kkguan.com;
rewrite ^(.*)$ https://kkguan.com/$1 permanent;
}
server {
listen 443 ssl;
ssl_ciphers ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384;
更多推荐
所有评论(0)