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

推荐订阅源

小众软件
小众软件
N
News and Events Feed by Topic
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
The Cloudflare Blog
H
Heimdal Security Blog
Schneier on Security
Schneier on Security
Engineering at Meta
Engineering at Meta
Google Online Security Blog
Google Online Security Blog
宝玉的分享
宝玉的分享
AI
AI
The GitHub Blog
The GitHub Blog
MongoDB | Blog
MongoDB | Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
The Last Watchdog
The Last Watchdog
T
Troy Hunt's Blog
S
Security @ Cisco Blogs
H
Hacker News: Front Page
F
Fortinet All Blogs
博客园_首页
S
Secure Thoughts
N
News and Events Feed by Topic
P
Proofpoint News Feed
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
Spread Privacy
Spread Privacy
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Hugging Face - Blog
Hugging Face - Blog
Hacker News: Ask HN
Hacker News: Ask HN
C
CXSECURITY Database RSS Feed - CXSecurity.com
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
L
LINUX DO - 最新话题
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Schneier on Security
Know Your Adversary
Know Your Adversary
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Scott Helme
Scott Helme
P
Privacy & Cybersecurity Law Blog
S
Securelist
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
O
OpenAI News
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
PCI Perspectives
PCI Perspectives
L
LangChain Blog
雷峰网
雷峰网
Security Archives - TechRepublic
Security Archives - TechRepublic
V2EX - 技术
V2EX - 技术

二歪同学

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