Flask应用桌面浏览器可显示,安卓浏览器因CSP无法访问
问题解决方案
是否需要Content Security Policy(CSP)?
完全不需要。你的应用部署在私人WiFi AP上,仅自己使用,未暴露到公共网络,不存在跨站脚本攻击(XSS)等安全风险,CSP对你的场景来说是多余的限制。
解决安卓浏览器无法访问的问题
1. 彻底清除所有CSP设置
你移除页面meta标签后问题依旧,说明CSP头部可能来自Apache或Flask配置:
- 检查Apache配置:打开Apache主配置文件(如
/etc/apache2/apache2.conf)或虚拟主机配置文件,查找是否有类似Header set Content-Security-Policy "default-src 'self'; child-src 'none';"的指令,找到后删除,然后重启Apache:sudo systemctl restart apache2。 - 检查Flask代码:查看应用中是否有通过响应头设置CSP的代码,比如
response.headers['Content-Security-Policy'] = "...",如果有,移除这部分代码。
2. 排查网络连接问题
- 确认安卓设备已连接到Pi Zero的WiFi AP,且IP地址属于
192.168.25.x网段。 - 检查Pi Zero防火墙:执行
sudo ufw status,若防火墙开启,确保允许80端口访问:sudo ufw allow 80,再重启防火墙:sudo systemctl restart ufw。 - 验证Apache监听设置:打开Apache的
ports.conf文件,确认Listen指令为Listen 0.0.0.0:80(允许所有IP访问),而非Listen 127.0.0.1:80(仅本地访问),修改后重启Apache。 - 清除安卓浏览器缓存:打开Chrome/Firefox设置,找到“清除缓存”和“清除浏览数据”选项,完成后重新访问
http://192.168.25.15。 - 手动输入完整地址:在安卓浏览器地址栏直接输入
http://192.168.25.15,避免浏览器将纯IP识别为搜索关键词跳转到谷歌页面。
内容的提问来源于stack exchange,提问作者user1045680
相关产品推荐
相关产品推荐

