首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有办法在网页中声明所有javascript http请求必须仅指向同一主机?

问是否有办法在网页中声明所有javascript http请求必须仅指向同一主机?
EN

Stack Overflow用户
提问于 2021-04-20 12:28:05
回答 1查看 41关注 0票数 2

我有一个小网站,显示来自不同广告网络的广告。有时,这些广告网络提供包含js代码的广告,这些代码向外部服务器发出HTTP请求,我发现有时这些请求侵犯了用户的隐私。

有什么方法阻止js请求到其他服务器吗?(即使我失去了广告的潜在收入,或者被禁止进入广告网络)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-20 12:47:04

页面可以使用内容安全策略 (CSP),可以通过网络响应上的HTTP报头,也可以通过页面内的<meta>标记。CSP用于控制页面可以通信的外部来源。

CSP可以有许多不同的指令,它们控制不同类型的外部请求。您似乎对connect-src指令特别感兴趣,该指令限制了脚本可以通过fetch (和类似的API)到达的来源。

请注意,脚本仍然可以通过向页面添加外部资源来启动外部请求,例如<img>、<object>、<link>等。如果要限制所有外部请求,可以使用default-src 'self'将所有指令默认设置为与页面本身相同的来源。然后,如果需要的话,您可以添加更宽松的附加特定指令。

例如,此策略阻止所有外部源请求和资源,但允许来自ads.example.com的框架、图像和脚本(以及原始源)除外:

代码语言:javascript
复制
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的限制,不允许脚本通信到外部源。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67178939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档