WEB安全防御总结 : 列举漏洞及修复建议

一. 不安全的第三方链接

漏洞简介:

在新打开的页面中可以通过 window.opener获取到源页面的部分控制权,即使新打开的页面是跨域的也照样可以

修复建议:

在a标签中加入rel="noopener noreferrer"属性

处理方式:

二. 纵向越权

漏洞简介:

对需要认证的web应用程序,直接使用不登陆鉴权的方式进行探测,检查是否能够正常访问,可能会升级用户特权并通过 Web 应用程序获取高级权限。

修复建议:

限制访问权限

处理方式:

三. 内容安全策略

漏洞简介:

可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置。

修复建议:

Content-Security-Policy是为了页面内容安全而制定的一系列防护策略,通过在响应头中配置Content-Security-Policy头以及相应的策略,可指定可信的内容来源,排除各种跨站点注入,包括跨站点脚本编制等:

  1. 响应头中配置Content-Security-Policy;
  2. 配置3个属性:frame-ancestors,default-src,以及script-src或object-src中的一个;
  3. default-src、script-src或者object-src的属性值不能配置'*'、data:、'unsafe-inline'、'unsafe-eval';
  4. 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蠕虫来对服务器造成巨大压力甚至崩溃。

修复建议:

  1. 进行HTTP响应头加固,启用浏览器的XSS filter;
  2. 2.Cookie设置HttpOnly,防止XSS偷取Cookie;
  3. 3.对用户输入参数使用ESAPI进行编码; 
  4. 4.根据业务逻辑限定参数的范围和类型,进行白名单判断制访问权限。

处理方式:

六. Cookie 检测

漏洞简介:

修复建议:

  1. 检测 HTTP Set-Cookie 字段(Http协议的情况下)。
  2. 每一条字段值包含 HttpOnly。

处理方式:

七. 不安全方法

漏洞简介:

攻击者可以使用OPTIONS和Trace等方法来枚举服务器相关信息。

修复建议:

  1. 在服务器配置中禁止非常用的HTTP方法;
  2. 代码中只支持常见HTTP方法。

处理方式:

八. 传输层保护不足

漏洞简介:

诸如用户名、密码和信用卡号之类的敏感输入字段未经加密即进行了传递,可能会窃取诸如用户名和密码等未经加密即发送了的用户登录信息。

修复建议:

确保敏感信息,一律以加密方式传给服务器

处理方式:

九. 记住密码:

漏洞简介:

诸如用户名、密码和信用卡号之类的敏感输入字段未经加密即进行了传递,可能会窃取诸如用户名和密码等未经加密即发送了的用户登录信息。

修复建议:

  1. 显式设置password输入框的属性autocomplete="off";
  2. 增加一些混淆浏览器的输入框,控制 Input 的数量为单数;
  3. 先设置 Input的type为text,然后延迟0.2秒后将其变成密码域。

处理方式:

十. 响应头漏洞

漏洞简介:

可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置。。

修复建议:

  1. 响应头中存在 X-Content-Type-Options 属性,而且 X-Content-Type-Options 属性值包含“nosniff”。
  2.  检测 HTTP X-Frame-Options 字段,字段值包含 deny 或 sameorigin。
  3.  配置响应头“X-XSS-Protection”,且将值设为 1;mode=block ;不要重复多次配置“X-XSS-Protection”响应头。

处理方式:

十一. 使用 HTTP 动词篡改的认证旁路

漏洞简介:

可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置。。

修复建议:

  1. 如果使用基于 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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值