项目上要进行IBM的App scan安全漏洞扫描,要有Web应用程序报告,网上找了不少内容,集中项目中,常出现的有以下几类
- 发现压缩目录
直接在nginx上,添加配置
location ~* \.(php|zip|arj|lzma|wim|war|ear|ar)$ {
deny all;
}
限制不能传后缀为这些的 - Oracle Application Server PL/SQL 未授权的 SQL 查询执行 查询执行
如果确定没用oracle,那应该是controller的问题,用了PathVariable,然后参数是数字型,扫描传了字符串,可以改为字符串,然后判断是否数字,
还有其它修改方式,主要是传了有SQL脚本的字符串,但全局性异常抓取了,但软件要求不能返回状态为200 - 跨站点请求伪造
解决这个有两种方式
一种是在网关上,判断referer里面的ip,要在信任的ip范围内,不在里面,返回错误报文
一种是在nginx上,添加referer白名单valid_referers none blocked 127.0.0.1 192.168.0.1;
if ($invalid_referer) {
return 403;
} - Apache Struts2 REST 插件 XStream 远程代码执行
在确定没用struts2的前提下,看有没以下依赖,如果有,删除依赖包<dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.10</version> </dependency>
- “Content-Security-Policy”头缺失或不安全
在nginx添加配置
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self'; frame-ancestors 'self'; ";
default-src 'self'; script-src 'self'; connect-src 'self'; 这三个为必须项,但有时会影响前端js,所以,要根据策略进行修改 - “X-Content-Type-Options”头缺失或不安全 头缺失或不安全
在nginx添加配置
add_header X-Content-Type-Options nosniff; - “X-XSS-Protection”头缺失或不安全 头缺失或不安全
在nginx添加配置
add_header X-XSS-Protection "1; mode=block";