惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
MongoDB | Blog
MongoDB | Blog
Engineering at Meta
Engineering at Meta
云风的 BLOG
云风的 BLOG
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
T
The Exploit Database - CXSecurity.com
P
Privacy & Cybersecurity Law Blog
Know Your Adversary
Know Your Adversary
月光博客
月光博客
I
InfoQ
阮一峰的网络日志
阮一峰的网络日志
NISL@THU
NISL@THU
爱范儿
爱范儿
S
Securelist
博客园 - 叶小钗
C
CERT Recently Published Vulnerability Notes
Recorded Future
Recorded Future
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
aimingoo的专栏
aimingoo的专栏
D
DataBreaches.Net
G
GRAHAM CLULEY
P
Proofpoint News Feed
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
C
Cyber Attacks, Cyber Crime and Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tor Project blog
Stack Overflow Blog
Stack Overflow Blog
T
Threat Research - Cisco Blogs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Recent Announcements
Recent Announcements
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
Jina AI
Jina AI
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
博客园 - 【当耐特】
H
Help Net Security
F
Fortinet All Blogs
T
The Blog of Author Tim Ferriss

二歪同学

Twikoo丨 邮件模板美化制作教程 - 二歪同学 浸式监控!NAS UPS 接入 Grafana,实现数据全屏可视化 - 二歪同学 MinIO to RustFS 丨一键脚本实现将对象从 MinIO 迁移到 RustFS 丝滑迁移 九号APP免折腾脚本教程,轻松搞定每日自动签到!(附开源代码) - 二歪同学 1Password 家庭组使用全攻略:常见问题与正确操作指南 - 二歪同学 实用教程丨通过爱快虚拟机安装完整版Home Assistant - 二歪同学 Lsky Pro 丨通过 docker 部署兰空图床开源版 + MinIO 再次上云丨 NAS 数据异地容灾备份解决方案 - 二歪同学 Better History丨浏览历史管理器汉化 - 二歪同学 PHP报错 Call to undefined function ImageCreate() 解决方案 Portainer 无法读取本地容器解决方案 - 二歪同学 绿联私有云NAS开启SSH方法 - 二歪同学 IOS微信自签注意事项及聊天记录安全备份 - 二歪同学 腾讯翻译丨谷歌翻译的替代方案,近乎完美! - 二歪同学 ATV-Bilibili-demo |在 Apple tv 上面看B站(小白/白嫖版) 黑苹果黑苹果系统更新失败解决方案! - 二歪同学 黑群晖/群晖 通过反代理实现 SSL 配置以及通过单端口外网访问所有项目 - 二歪同学 NginxProxyManager 可视化的反代理管理工具部署及操作技巧 - 二歪同学 Transmission 保种错误解决方案 - 二歪同学
Halo 插件 Umami 跨域报错解解决方案 - 二歪同学
二歪同学 · 2025-05-25 · via 二歪同学

在配置 halo 博客 PluginUmami 插件时,会遇到报错信息,拒绝链接(如图)。

IMG-6D2C041FB335B9BE2A04D20ADDCED82F.webp

查看控制台报错信息如下:

Refused to frame 'https://umami.waistu.com/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self' undefined".
Understand this erro

主要为浏览器的 内容安全策略(Content Security Policy, CSP) 相关,通常出现在尝试将某个网页嵌入到 iframe、frame 或 object 等框架元素中时。


解决思路

查阅插件文档,给出的解决方案加入相关 Nginx 配置:

server{
    listen 443 ssl http2;
    server_name [umami.domain.com];
    #...
    add_header Access-Control-Allow-Origin 'https://halo.domain.com';
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
    if ($request_method = 'OPTIONS') {
        return 204;
    }

    add_header Content-Security-Policy 'frame-ancestors halo.domain.com';
    location / {
    #...
    proxy_hide_header 'Access-Control-Allow-Origin';
    proxy_hide_header 'Content-Security-Policy';
    }

}

根据插件文档,对 Nginx 配置文件进行修改,这里以 1Panel 面板为例,在 Nginx 配置文件添加下方内容,并将 waistu 更换为你的域名,支持当前泛域名所有请求,即可解决问题。

[!NOTE] 2025年7月修改
原内容可以解决在 Halo 后台正确加载 Umami 页面,但控制台还是会存在 /api/send 报错信息,重新优化下配置:修复正则表达式、移除部分冲突的配置等内容。

# 跨域配置优化
set $cors_origin "";
if ($http_origin ~* "^https://.*\.waistu\.com$") {
    set $cors_origin $http_origin;
}

# 允许带凭证的跨域请求,动态设置允许的域名
add_header Access-Control-Allow-Origin $cors_origin always;
add_header Access-Control-Allow-Credentials 'true' always;

# 合并重复的头信息,避免冲突
add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, PATCH, OPTIONS' always;
add_header Access-Control-Allow-Headers 'DNT, X-Mx-ReqToken, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Type, Authorization, Token' always;
add_header Access-Control-Max-Age 86400 always;

# 内容安全策略,防止iframe嵌入攻击
add_header Content-Security-Policy "frame-ancestors 'self' https://*.waistu.com" always;

# 规范化隐藏上游响应头
proxy_hide_header Access-Control-Allow-Origin;
proxy_hide_header Content-Security-Policy;

# 预检请求快速响应
if ($request_method = 'OPTIONS') {
    return 204;
}

添加位置如图,并修改域名为实际 Halo 博客地址后,保存并重载 Nginx 配置文件即可。、
wechat_2025-07-22_102307_933.webp


最终效果

IMG-F512FDCA9C78E2687DDF6FE5DA8FDA2B.webp