我的CSP规则非常简单/标准:
content-security-policy: default-src 'self' https: 'unsafe-inline' https://www.googleapis.com https://api.dropboxapi.com https://content.dropboxapi.com;img-src 'self' https: 'unsafe-inline' data:;base-uri 'self';block-all-mixed-content;font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';object-src 'none';upgrade-insecure-requests
它们可以工作,但只有当页面通过name:port
调用时,而不是IP地址。tld:PORT
和localhost:PORT
都可以工作,但IP:PORT
不能工作,尽管default-src
中有'self'
关键字。
当页面被IP调用时,有没有办法让规则起作用,或者这本身就是不可能的?
1条答案
按热度按时间6rqinv9w1#
我发现我的本地环境有一些奇怪的行为,我想这与你的问题有关。我的本地服务器是http,但chrome在我设置CSP时试图通过https加载所有内容。
调用索引:
从这里开始,每个请求都通过https加载:
我不知道是什么“CSP魔术”导致了这种行为,但切换到NAME:PORT而不是IP地址解决了这个问题。