首页 > 最新动态 > 专家视窗

解决:IIS/Apache/Nginx/Tomcat响应头缺失低危漏洞方法

更新时间:2024-01-18 作者:中栖梧桐云

前言:经常遇到网站被扫描有响应头缺失的漏洞,本问将介绍如何处理IIS、Apache、Nginx、Tomcat(java)下修复响应头缺失的漏洞方法,例如 X-Content-Type-Options响应头缺失、Referrer-Policy响应头缺失、X-XSS-Protection响应头缺失、X-Download-Options响应头缺失、Strict-Transport-Security响应头缺失、Content-Security-Policy响应头缺失、X-Permitted-Cross-Domain-Policies响应头缺失、X-Frame-Options未配置方法。相对大家有帮助。
解决方法:
1、IIS7及以上版本。

<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
  <system.webServer>
   <httpProtocol>
    <customHeaders>
     <!--检测到目标X-Content-Type-Options响应头缺失-->
     <add name="X-Content-Type-Options" value="nosniff" />
     <!--检测到目标X-XSS-Protection响应头缺失-->
     <add name="X-XSS-Protection" value="1;mode=block" />
     <!--检测到目标Content-Security-Policy响应头缺失-->
     <add name="Content-Security-Policy" value="default-src 'self'" />
     <!--检测到目标Strict-Transport-Security响应头缺失-->
     <add name="Strict-Transport-Security" value="max-age=31536000" />
     <!--检测到目标Referrer-Policy响应头缺失-->
     <add name="Referrer-Policy" value="origin-when-cross-origin" />
     <!--检测到目标X-Permitted-Cross-Domain-Policies响应头缺失-->
     <add name="X-Permitted-Cross-Domain-Policies" value="master-only" />
     <!--检测到目标X-Download-Options响应头缺失-->
     <add name="X-Download-Options" value="noopen" />
     <!--点击劫持:X-Frame-Options未配置-->
    <add name="X-Frame-Options" value="SAMEORIGIN" />
   </customHeaders>
  </httpProtocol>
 </system.webServer>
</configuration>

2、Apache
在conf配置文件或网站根目录下创建.htaccess,在其中添加以下规则:

#检测到目标X-Content-Type-Options响应头缺失
Header set X-Content-Type-Options "nosniff"
#检测到目标X-XSS-Protection响应头缺失
Header set X-XSS-Protection "1; mode=block"
#检测到目标Strict-Transport-Security响应头缺失
Header set Strict-Transport-Security: "max-age=31536000 ; includeSubDomains ;"
#检测到目标Referrer-Policy响应头缺失
Header set Referrer-Policy: strict-origin-when-cross-origin
#检测到目标X-Permitted-Cross-Domain-Policies响应头缺失
Header set X-Permitted-Cross-Domain-Policies "master-only"
#检测到目标X-Download-Options响应头缺失
Header set X-Download-Options "noopen"
#点击劫持:X-Frame-Options未配置
Header set X-Frame-Options "SAMEORIGIN"

3、Nginx
在站点配置文件中添加如下规则。
 

#检测到目标X-Content-Type-Options响应头缺失
add_header 'Referrer-Policy' 'origin';
#检测到错误页面web应用服务器版本信息泄露
修改404页面及500页面,不要出现apache、nginx等字样
#检测到目标Referrer-Policy响应头缺失
add_header 'Referrer-Policy' 'origin';
#检测到目标X-XSS-Protection响应头缺失
add_header X-Xss-header  “1;mode=block”;
#检测到目标X-Download-Options响应头缺失
add_header X-Download-Options "noopen" always;
#检测到目标Strict-Transport-Security响应头缺失
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
#检测到目标Content-Security-Policy响应头缺失
add_header X-Frame-Options SAMEORIGIN;
#检测到目标X-Permitted-Cross-Domain-Policies响应头缺失
header("X-Permitted-Cross-Domain-Policies:'master-only';");
#点击劫持:X-Frame-Options未配置
add_header X-Frame-Options SAMEORIGIN;

范例:

location / {
    。。。。
    ## nginx代理配置
    。。。。    
    # 相关安全漏洞响应头
    # 检测到目标 X-Content-Type-Options响应头缺失 这个暂时不开启,不然部分banner无法使用
    #add_header X-Content-Type-Options "nosniff";
    # 检测到目标 X-XSS-Protection响应头缺失
    add_header X-XSS-Protection "1; mode=block";
    # 检测到目标 Content-Security-Policy响应头缺失
    add_header Content-Security-Policy "default-src 'self' http: https://* data: blob: 'unsafe-eval' 'unsafe-inline';child-src 'none' " always;
    # 检测到目标 Referrer-Policy响应头缺失
    add_header Referrer-Policy "no-referrer-when-downgrade" always;
    # 检测到目标 X-Permitted-Cross-Domain-Policies响应头缺失
    add_header X-Permitted-Cross-Domain-Policies none;
    # 检测到目标 X-Download-Options响应头缺失
    add_header X-Download-Options noopen;
    # 检测到目标 Strict-Transport-Security响应头缺失
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
}

 

4、Tomcat
从java程序层面禁止响应头。

/**
 * @author ZQQ
 * @version 1.0
 * @date 2021/9/22 15:54
 * @desc :
 */
@WebFilter(urlPatterns = "/*", filterName = "responseHeadFilter")
public class ResponseHeadFilter implements Filter {
 
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
 
    }
 
    public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException, IOException {
        //增加响应头缺失代码
        HttpServletRequest req=(HttpServletRequest)request;
        HttpServletResponse res=(HttpServletResponse)response;
        res.addHeader("X-Frame-Options","SAMEORIGIN");
        res.addHeader("Referrer-Policy","origin");
        res.addHeader("Content-Security-Policy","object-src 'self'");
        res.addHeader("X-Permitted-Cross-Domain-Policies","master-only");
        res.addHeader("X-Content-Type-Options","nosniff");
        res.addHeader("X-XSS-Protection","1; mode=block");
        res.addHeader("X-Download-Options","noopen");
        res.addHeader("Strict-Transport-Security","max-age=63072000; includeSubdomains; preload");
        //处理cookie问题
        Cookie[] cookies = req.getCookies();
        if (cookies != null) {
            for (Cookie cookie : cookies) {
                String value = cookie.getValue();
                StringBuilder builder = new StringBuilder();
                builder.append(cookie.getName()+"="+value+";");
                builder.append("Secure;");//Cookie设置Secure标识
                builder.append("HttpOnly;");//Cookie设置HttpOnly
                res.addHeader("Set-Cookie", builder.toString());
            }
        }

        chain.doFilter(request, response);
    }
    @Override
    public void destroy() {
 
    }
}


5、PHP程序层面上禁止响应头

header("X-Frame-Options:SAMEORIGIN;");  // X-Frame-Options 响应头缺失
header("Referer-Policy:origin;");//Referer-Policy 响应头缺失
header("Content-Security-Policy:frame-ancestors 'self';");//Content-Security-Policy 响应头缺失
header("X-Permitted-Cross-Domain-Policies:'master-only';");//X-Permitted-Cross-Domain-Policies 响应头缺失
header("X-XSS-Protection:1; mode=block;");//X-XSS-Protection 响应头缺失
header("X-Download-Options: SAMEORIGIN;");//X-Download-Options 响应头缺失
header("X-Content-Type-Options:nosniff;");//X-Content-Type-Options 响应头缺失
header("Strict-Transport-Security:max-age=31536000;");//Strict-Transport-Security 响应头缺失


转载请以链接形式注明出处:

本篇文章来源于 "中栖梧桐云" :http://www.womtech.cn

中栖梧桐云 版权与免责声明:

① 凡本网注明“来源:中栖梧桐云”的所有作品,版权均属于中栖梧桐云,版权归中栖梧桐云所有,未经本网授权不得转载、摘编或利用其它方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:中栖梧桐云”。违反上述声明者,本网将追究其相关法律责任。

② 凡本网注明“来源:XXX(非中栖梧桐云)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

③ 本网部分内容来自互联网,如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。

※ 联系方式:中栖梧桐云 Email:jinostart@126.com

最新活动

分类

立即注册,开启您的0门槛上融媒体云之旅!

免费试用

关注联系我们

微信公众号 微博

联系我们

热门推荐

快速入口

支持与服务

全部行业解决方案

    友情链接

    数字报刊软件 电子报刊软件 中栖梧桐网站地图 北京金启程科技

©2021-2025 中栖梧桐 京ICP备15002495号-2 京公网安备11011402013126

    联系我们

售前电话咨询 010-13910566257 售后电话咨询 010-57117580 更多