漏洞处理-未设置X-Frame-Options

文章讲述了如何在Nginx服务器上设置X-Frame-Options头以防止iFrame注入漏洞,以及处理跨域问题。主要内容包括添加X-Frame-Options为SAMEORIGIN、解决不同域名嵌套和重复设置问题,确保页面安全并支持跨域请求。
摘要由CSDN通过智能技术生成

漏洞名称:iFrame注入

风险描述:系统未设置x-frame-options头

风险等级:低

整改建议:为系统添加x-frame-options头

知识

X-Frame-Options 响应头

X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 <frame>, <iframe> 或者 <object> 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。

X-Frame-Options 有三个值:

DENY

表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

SAMEORIGIN

表示该页面可以在相同域名页面的 frame 中展示。

ALLOW-FROM uri

表示该页面可以在指定来源的 frame 中展示。

换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。

实际修改内容

在nginx的location下添加漏洞处理的内容。

遇到的问题:

1 直接在http或者server下添加设置没有生效,原因未知

2 系统的组成B内嵌到A中,A的域名为xxxx.com,B的域名为xxxx.com:19111,将 x-frame-options 设置为SAMEORIGIN之后,不能正常跳转。修改了配置 将xxxx.com:19111转为为二级域名xxxx.com/yjsPreview,才能被认为是同一个域名下。

3 设置 x-frame-options 设置为SAMEORIGIN之后,在请求中有重复的x-frame-options,添加了设置    proxy_hide_header x-frame-options,先取消之前已经有的设置;

 server {
        listen       80;
        server_name 192.168.0.2
        charset utf-8;
        client_max_body_size 50M;
        #允许跨域访问
        #   指定允许跨域的方法,*代表所有
        add_header Access-Control-Allow-Methods *;
        #   预检命令的缓存,如果不缓存每次会发送两次请求
        add_header Access-Control-Max-Age 3600;
        #   不带cookie请求,并设置为false
        add_header Access-Control-Allow-Credentials false;
        #   $http_origin动态获取请求客户端请求的域   不用*的原因是带cookie的请求不支持*号
        #add_header Access-Control-Allow-Origin $http_origin;
        add_header Access-Control-Allow-Origin *;
        #   表示请求头的字段 动态获取
        add_header Access-Control-Allow-Headers $http_access_control_request_headers;
        location / {
            #root   html;
            proxy_pass http://192.168.0.3:18001/;
            #index  index.html index.htm;
            proxy_set_header  X-Real-IP $remote_addr;
            #proxy_set_header  Host   $host;
            proxy_set_header  Host   $host:$server_port;
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header  X-Forwarded-Proto $scheme;

            proxy_set_header  X-Forwarded-Host   $host;
            proxy_set_header  X-Forwarded-Server   $host;
            #add_header 'Access-Control-Allow-Origin' '*' always;
            #add_header 'Access-Control-Allow-Credentials' 'true' always;
            #add_header 'Access-Control-Allow-Methods' 'POST,GET,OPTIONS' always;
            #add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type' always;
            fastcgi_buffers 8 1280k;
            send_timeout 600;
             #低微漏洞处理20231225,为系统添加x-frame-options头
            proxy_hide_header x-frame-options;
            add_header x-frame-options "SAMEORIGIN";

            #低微漏洞处理20231225,为系统Cookie设置secure属性
            add_header Set-Cookie "Secure";
        }
         #代理kkfileview
        location /yjsPreview/ {
            #root   html;
            proxy_pass http://kkfileview_server/;
            #index  index.html index.htm;
            proxy_
            location /yjsFileReport/ {
            #root   html;
            proxy_pass http://fine_server/;
            #index  index.html index.htm;
            proxy_set_header  X-Real-IP $remote_addr;
            #proxy_set_header  Host   $host;
            proxy_set_header  Host   $host:$server_port;
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header  X-Forwarded-Proto $scheme;

            proxy_set_header  X-Forwarded-Host   $host;
            proxy_set_header  X-Forwarded-Server   $host;
            add_header 'Access-Control-Allow-Origin' '*' always;
            add_header 'Access-Control-Allow-Credentials' 'true' always;
            add_header 'Access-Control-Allow-Methods' 'POST,GET,OPTIONS' always;
            add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type' always;
           #低微漏洞处理20231225,为系统添加x-frame-options头     
            proxy_hide_header x-frame-options;  
            add_header x-frame-options "SAMEORIGIN";
           
#低微漏洞处理20231225,为系统Cookie设置secure属性
            add_header Set-Cookie "Secure";

        }


        error_page   500 502 503 504  /50x.html;

    }

截图

  • 27
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值