一. 不安全的第三方链接:
漏洞简介:
在新打开的页面中可以通过 window.opener获取到源页面的部分控制权,即使新打开的页面是跨域的也照样可以
修复建议:
在a标签中加入rel="noopener noreferrer"属性
处理方式:
二. 纵向越权:
漏洞简介:
对需要认证的web应用程序,直接使用不登陆鉴权的方式进行探测,检查是否能够正常访问,可能会升级用户特权并通过 Web 应用程序获取高级权限。
修复建议:
限制访问权限
处理方式:
三. 内容安全策略:
漏洞简介:
可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置。
修复建议:
Content-Security-Policy是为了页面内容安全而制定的一系列防护策略,通过在响应头中配置Content-Security-Policy头以及相应的策略,可指定可信的内容来源,排除各种跨站点注入,包括跨站点脚本编制等:
- 响应头中配置Content-Security-Policy;
- 配置3个属性:frame-ancestors,default-src,以及script-src或object-src中的一个;
- default-src、script-src或者object-src的属性值不能配置'*'、data:、'unsafe-inline'、'unsafe-eval';
- frame-ancestors的属性值不能配置data:。
处理方式:
在.htaccess文件中加入如下代码,具体的js、css站点域名需自行配置
<IfModule mod_headers.c>
Header set Content-Security-Policy: "style-src 'self' 'unsafe-inline' cdn.bootcss.com netdna.bootstrapcdn.com;script-src 'self' 'unsafe-inline' 'unsafe-eval' cdn.bootcss.com cdn.bootcdn.net;"
</IfModule>
四. 跨站脚本包含:
漏洞简介:
页面中包含跨域脚本,攻击者可通过恶意JS绕过边界窃取信息。
修复建议:
不要把敏感数据放在JavaScript文件中,也不要放在JSONP中。
处理方式:
五. 反射型XSS:
漏洞简介:
攻击者可以向网站注入任意的JS代码,来控制其他用户浏览器的行为,从而偷取用户的cookie或者执行任意操作,进而形成XSS蠕虫来对服务器造成巨大压力甚至崩溃。
修复建议:
- 进行HTTP响应头加固,启用浏览器的XSS filter;
- 2.Cookie设置HttpOnly,防止XSS偷取Cookie;
- 3.对用户输入参数使用ESAPI进行编码;
- 4.根据业务逻辑限定参数的范围和类型,进行白名单判断制访问权限。
处理方式:
六. Cookie 检测:
漏洞简介:
修复建议:
- 检测 HTTP Set-Cookie 字段(Http协议的情况下)。
- 每一条字段值包含 HttpOnly。
处理方式:
七. 不安全方法:
漏洞简介:
攻击者可以使用OPTIONS和Trace等方法来枚举服务器相关信息。
修复建议:
- 在服务器配置中禁止非常用的HTTP方法;
- 代码中只支持常见HTTP方法。
处理方式:
八. 传输层保护不足:
漏洞简介:
诸如用户名、密码和信用卡号之类的敏感输入字段未经加密即进行了传递,可能会窃取诸如用户名和密码等未经加密即发送了的用户登录信息。
修复建议:
确保敏感信息,一律以加密方式传给服务器
处理方式:
九. 记住密码:
漏洞简介:
诸如用户名、密码和信用卡号之类的敏感输入字段未经加密即进行了传递,可能会窃取诸如用户名和密码等未经加密即发送了的用户登录信息。
修复建议:
- 显式设置password输入框的属性autocomplete="off";
- 增加一些混淆浏览器的输入框,控制 Input 的数量为单数;
- 先设置 Input的type为text,然后延迟0.2秒后将其变成密码域。
处理方式:
十. 响应头漏洞:
漏洞简介:
可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置。。
修复建议:
- 响应头中存在 X-Content-Type-Options 属性,而且 X-Content-Type-Options 属性值包含“nosniff”。
- 检测 HTTP X-Frame-Options 字段,字段值包含 deny 或 sameorigin。
- 配置响应头“X-XSS-Protection”,且将值设为 1;mode=block ;不要重复多次配置“X-XSS-Protection”响应头。
处理方式:
十一. 使用 HTTP 动词篡改的认证旁路:
漏洞简介:
可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置。。
修复建议:
- 如果使用基于 HTTP 方法的访问控制,配置 web 服务器以仅允许所需 HTTP 方法。
确保配置的确限制未列出的方法:
在 Apache .htaccess 文件中:避免使用有问题的“LIMIT”伪指令。使用“LimitExcept”伪指令。
在 JAVA EE 中,避免在访问控制策略中使用 <http-method> 元素。
在 ASP.NET 授权中,在允许所需动词的白名单之后,使用 <deny verbs="*" users="*" />。
处理方式:
Apache - 虚拟主机配置文件vhosts.conf(不同软件的文件名不一定相同)中对应虚拟主机开启403重定向,主要使用LimitExcept进行限制,如:
<VirtualHost *:80>
***
<Directory "/data/project/htdocs">
Options FollowSymLinks MultiViews
AllowOverride ALL
Order allow,deny
allow from all
Require all granted
<LimitExcept GET POST>
#禁止除GET POST以外的请求
AllowOverride All
deny from all
</LimitExcept>
</Directory>
ErrorDocument 403 /error/error404.php
</VirtualHost>