web项目中常见漏洞及解决方案

1.X-Frame-Options劫持

漏洞类型:内容欺骗

描述:

点击劫持(ClickJacking)是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见
的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知
情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点
击在iframe页面的一些功能性按钮上。
HTTP 响应头信息中的X-Frame-Options,可以指示浏览器是否应该加载一个 iframe
中的页面。如果服务器响应头信息中没有X-Frame-Options,则该网站存在
ClickJacking攻击风险。网站可以通过设置 X-Frame-Options 阻止站点内的页面被其他
页面嵌入从而防止点击劫持。

解决方案: 

方案1.

修改web服务器配置,添加X-Frame-Options响应头。赋值有如下三种:
1、DENY:不能被嵌入到任何iframe或者frame中。
2、SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。
3、ALLOW-FROM uri:只能被嵌入到指定域名的框架中。
例如:
apache可配置http.conf如下:
 
Header always append X-Frame-Options "DENY" 
 

方案2.

修改web.xml


    httpHeaderSecurity
    org.apache.catalina.filters.HttpHeaderSecurityFilter
    
        antiClickJackingEnabled
        true
    
    
        antiClickJackingOption
        sameorigin
    
    
        antiClickJackingUri
        https://baidu.com/
    
    true



    httpHeaderSecurity
    /*
    REQUEST

2.通过HTTP获取远端WWW服务信息

漏洞详情 Server is running 
Version: 
[Apache-Coyote/1.1] 
漏洞类型:远程信息泄露
详细描述:本插件检测远端HTTP Server信息。这可能使得攻击者了解远程系统类型以便进行下一
步的攻击。
解决方案:tomcat服务器修改config/server.xml文件

3.检测到目标URL存在http host头攻击漏洞

命令执行类型:系统命令执行
详细描述:为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。例如,在php里用
_SERVER["HTTP_HOST"]。但是这个header是不可信赖的,如果应用程序没有对host
header值进行处理,就有可能造成恶意代码的传入。
解决方案:web应用程序应该使用SERVER_NAME而不是host header。
在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法host header。在
Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个
SERVER_NAME名单并开启UseCanonicalName选项。

tomcat将Host里的name修改为静态的域名,如下:

name将localhost改为静态ip

4.缺少“X-Content-Type-Options” 头、缺少“X-XSS-Protection” 头

《1.》TTP X-XSS-Protection响应标头是Internet Explorer,Chrome和Safari的一项功能,可在检测到反映的跨站点脚本(XSS)攻击时阻止页面加载。虽然这些保护在现代浏览器中很大程度上是不必要的,当站点实现Content-Security-Policy禁用内联JavaScript('unsafe-inline')的强大功能时,它们仍然可以为尚未支持CPS的旧版Web浏览器的用户提供保护。

语法:

X-XSS-Protection: 0
X-XSS-Protection: 1
X-XSS-Protection: 1; mode=block
X-XSS-Protection: 1; report=

解决方案:Apache

 
  Header set X-XSS-Protection "1; mode=block" 

《2.》描述:X-Content-Type-Options 响应首部相当于一个提示标志,被服务器用来提示客户端一定要遵循在 Content-Type 首部中对MIME类型的设定,而不能对其进行修改。这就禁用了客户端的 MIME类型嗅探行为,换句话说,也就是意味着网站管理员确定自己的设置没有问题。

这个消息首部最初是由微软在 IE 8 浏览器中引入的,提供给网站管理员用作禁用内容嗅探的手段,内容嗅探技术可能会把不可执行的 MIME 类型转变为可执行的 MIME 类型。在此之后,其他浏览器也相继引入了这个首部,尽管它们的 MIME 嗅探算法没有那么有侵略性。

nosniff 只应用于 "script" 和 "style" 两种类型。事实证明,将其应用于图片类型的文件会导致与现有站点冲突。

Header type: Response header

Forbidden header name:no

语法:X-Content-Type-Options: nosniff

指令:nosniff

下面两种情况的请求将被阻止:

  • 请求类型是"style" 但是 MIME 类型不是 "text/css",
  • 请求类型是"script" 但是 MIME 类型不是 JavaScript MIME类型。

tomcat配置“X-Content-Type-Options” 头解决方案:

  打开tomcat/conf/web.xml添加如下代码(低版本tomcat有可能缺少HttpHeaderSecurityFilter.class文件,可以下载高本版tomcat在catalina.jar中):


        httpHeaderSecurity
        org.apache.catalina.filters.HttpHeaderSecurityFilter
        
            antiClickJackingOption
            SAMEORIGIN
        
        true
    
    
    
        httpHeaderSecurity
        /*
    


描述web项目中常见漏洞及解决方案_第1张图片缺少“X-Content-Type-Options”头

 

算-Content-Type-Options”头缺少“X-Content-Type-Options”头缺少“X-Content-Type-Options”头

你可能感兴趣的:(项目安全)