我有一个小网站,显示来自不同广告网络的广告。有时,这些广告网络提供包含js代码的广告,这些代码向外部服务器发出HTTP请求,我发现有时这些请求侵犯了用户的隐私。
有什么方法阻止js请求到其他服务器吗?(即使我失去了广告的潜在收入,或者被禁止进入广告网络)
发布于 2021-04-20 12:47:04
页面可以使用内容安全策略 (CSP),可以通过网络响应上的HTTP报头,也可以通过页面内的<meta>标记。CSP用于控制页面可以通信的外部来源。
CSP可以有许多不同的指令,它们控制不同类型的外部请求。您似乎对connect-src指令特别感兴趣,该指令限制了脚本可以通过fetch (和类似的API)到达的来源。
请注意,脚本仍然可以通过向页面添加外部资源来启动外部请求,例如<img>、<object>、<link>等。如果要限制所有外部请求,可以使用default-src 'self'将所有指令默认设置为与页面本身相同的来源。然后,如果需要的话,您可以添加更宽松的附加特定指令。
例如,此策略阻止所有外部源请求和资源,但允许来自ads.example.com的框架、图像和脚本(以及原始源)除外:
default-src 'self'; img-src 'self' https://ads.example.com; script-src 'self' https://ads.example.com; frame-src 'self' https://ads.example.com由于没有指定connect-src,所以它受到default-src的限制,不允许脚本通信到外部源。
https://stackoverflow.com/questions/67178939
复制相似问题