服务器设置 Header响应头(Server、X-Frame-Options、X-Powered-By)

本文详细介绍了如何通过配置IIS和Tomcat隐藏服务器版本信息,添加X-Frame-Options Header以防止点击劫持,以及如何去除X-Powered-By信息,提高服务器安全性。

一、iis7/8隐藏banner信息

进入在【Internet 信息服务(IIS)管理器】-【HTTP 响应头】,添加或删除或修改即可。

  1. 隐藏 Server 版本信息,安装UrlScan,打开%WINDIR%\System32\Inetsrv\URLscan,配置URLScan.ini:
    RemoveServerHeader=0;  改为RemoveServerHeader=1;
  2. 添加 X-Frame-Options Header
    进入在【Internet 信息服务(IIS)管理器】-【HTTP 响应头】,添加如下响应头:
    名称:X-Frame-Options
    值:SAMEORIGIN

     

  3. 去除X-Powered-By信息
    进入在【Internet 信息服务(IIS)管理器】-【HTTP 响应头】,删除或修改如下响应头:
    名称:X-Powered-By
    值:ni chou sha

     

二、Tomcat,服务器,项目

  1. 隐藏 Server 版本信息,修改tomcat/conf/server.xml配置文件即可:
    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443"    server="Microsoft-IIS/8.5"/>

     修改 server="Microsoft-IIS/8.5"  的值就行了,随便写。^_^

  2. 添加 X-Frame-Options Header
    方式一:修改 tomcat 配置文件
    打开Tomcat配置文件(conf\web.xml)搜索 httpHeaderSecurity有两处地方
       
    <!--第一处将注释放开-->
       <filter>
            <filter-name>httpHeaderSecurity</filter-name>
                <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
            <async-supported>true</async-supported>
    <!--新增内容-->
            <init-param>
                <param-name>antiClickJackingEnabled</param-name>
                <param-value>true</param-value>
            </init-param>
            <init-param>
                <param-name>antiClickJackingOption</param-name>
                <param-value>SAMEORIGIN</param-value>
            </init-param>
        </filter>
    <!--第二处-->
        <filter-mapping>
            <filter-name>httpHeaderSecurity</filter-name>
            <url-pattern>/*</url-pattern>
            <dispatcher>REQUEST</dispatcher>
        </filter-mapping>

    方式二:在项目过滤器中添加Header
    	@Override
    	public void doFilter(ServletRequest request, ServletResponse response)
    			throws IOException, ServletException {
    		HttpServletResponse resp = (HttpServletResponse) response;
    		resp.setHeader("x-frame-options","x-frame-options");
    	}

    方式三:在jsp的公共页面添加java代码。(其实跟第二种一样)
    <%
    response.setHeader("x-frame-options","x-frame-options");
    %>

     

  3. 去除X-Powered-By信息,待补充
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; # HTTPS server server { listen 80; server_name www.wyqg.top; # 关键:设置允许的最大请求体大小(1000M,可根据需要调整) client_max_body_size 1000m; add_header Strict-Transport-Security "max-age=0; includeSubDomains" always; # 关键规则:优先匹配/incorruptFront/wechat路径 # 放在最前面以确保最高优先级 location ^~ /incorruptFront/wechat { # 核心调试标识:只要匹配到该规则,就会返回这个响应头 add_header X-Rule-Matched "incorruptFront-wechat" always; proxy_pass http://218.31.203.46:8081; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'Content-Type, Authorization'; add_header Cache-Control "no-store, no-cache, must-revalidate"; } # /api路径转发规则 location /api { rewrite ^/api/(.*)$ /$1 break; proxy_pass http://218.31.203.46:8081; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'Content-Type'; } # 静态资源缓存配置 location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg)$ { root dist_FWH/build/web; expires 1d; # 静态资源缓存1天 add_header Cache-Control "public, max-age=86400"; } # 前端静态资源(默认规则,放在最后) location / { root dist_FWH/build/web; index index.html; try_files $uri $uri/ /index.html; } } #后台管理项目 server { listen 8080 ; server_name www.wyqg.top; # 替换为您的域名或服务器IP root dist_HTGL; # 应该是目录,不是文件 # 关键:设置允许的最大请求体大小(1000M,可根据需要调整) client_max_body_size 1000m; add_header Strict-Transport-Security "max-age=0; includeSubDomains" always; # 启用 Gzip 静态文件支持 gzip_static on; gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # 路由 history 模式支持 location / { index index.html; try_files $uri $uri/ /index.html; # 缓存配置 if ($request_filename ~* .*\.(?:js|css|jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$) { expires 365d; add_header Cache-Control "public, immutable"; } } # 8080端口server块中必须包含这段配置 location /proxy-images/ { rewrite ^/proxy-images/(.*)$ /statics/$1 break; # 关键:去掉前缀,拼接真实路径 proxy_pass http://218.31.203.46:9300; # 关键:指向图片服务器IP+端口 proxy_set_header Host $proxy_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # 静态资源目录 location /static/ { alias dist_HTGL/static/; expires max; add_header Cache-Control "public, immutable"; access_log off; } # API 代理配置 location /prod-api/ { proxy_pass http://218.31.203.46:8081/; # 请求头处理 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # WebSocket 支持 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # 超时设置 proxy_connect_timeout 60s; proxy_read_timeout 600s; proxy_send_timeout 600s; } # 禁止访问敏感文件 location ~ /\.(env|git) { deny all; return 403; } # 错误页面 error_page 404 /index.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } 我的nginx代理如下
08-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值