Nginx点击劫持:CSP frame-ancestors 缺失

漏洞描述

点击劫持(用户界面矫正攻击、UI 矫正攻击、UI 矫正)是一种恶意技术,诱使 Web 用户点击与用户认为其单击的内容不同的内容(就是你以为你点的是网站上的按钮,实际上可能是在原网站上覆盖了一层透明的其它恶意内容:就像你在浏览某视频网站时,命名点击的是视频播放,结果点击后视频没播放,缺弹出了性感荷官弹窗-_-!;或者网吧你steam账号被盗也可能用了此类技术),从而在单击看似无害的网页时有可能导致机密信息泄露或计算机被控制 。

服务器在 Content-Security-Policy 报头中未返回 frame-ancestors 指令,这意味着此网站存在遭受点击劫持攻击的风险。frame-ancestors 指令可被用于指示是否应允许浏览器在框架内呈现页面。站点可以通过确保其内容中未嵌入其他网站来避免点击劫持攻击。

修复方法

配置您的 Web 服务器,使其包含带有 frame-ancestors 指令的 CSP 报头和 X-Frame-Options 报头;
增加“Content-Security-Policy” 响应头,通过该头部定义哪些是可信资源,从而控制浏览器加载哪些资源,防止恶意脚本执行。作用是:
· 防止跨站脚本攻击(XSS):通过限制页面中可加载的资源来源,减少恶意脚本的执行风险。
· 控制资源加载:允许管理员指定哪些资源(如脚本、图片、样式表等)可以被加载和执行。
· 提高网站安全性:通过白名单机制,确保只有可信的资源被加载。

示例

通过在NG服务器配置http响应头

server {
listen 443 ssl;
server_name example.com;

# SSL 证书和其他 SSL 配置

# 添加CSP及X-Frame-Options头,注X-Frame-Options头在支持frame-ancestors指令的浏览器上,该头已被废弃。
add_header Content-Security-Policy "frame-ancestors 'self' *.trust.com"; "default-src 'self' *.trust.com;
# 该头部用于对较老版本浏览器的支持
add_header X-Frame-Options SAMEORIGIN always; 
}

配置参考:CSP导航指令
配置参考:x-fram-option

posted @ 2025-04-03 15:45  Linux小飞象  阅读(441)  评论(0)    收藏  举报