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:。

处理方式:

 

四. 跨站脚本包含

漏洞简介:

页面中包含跨域脚本,攻击者可通过恶意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”响应头。

处理方式:

 

 

你可能感兴趣的:(安全防御)