漏洞名称: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;
? ? }