有没有一种方法可以在网页中声明所有javascript http请求必须只发送到同一主机?

有没有一种方法可以在网页中声明所有javascript http请求必须只发送到同一主机?,javascript,security,Javascript,Security,我有一个小网站,显示来自不同广告网络的广告。有时,这些广告网络提供包含js代码的广告,js代码向外部服务器发出HTTP请求,我发现有时这些请求侵犯了我用户的隐私 有没有办法阻止对其他服务器的js请求?即使我失去了该广告的潜在收入或被禁止进入广告网络页面也可以使用CSP,通过网络响应上的HTTP头或页面内的标签。CSP用于控制页面可以与哪些外部源进行通信 CSP可以有许多不同的指令来控制不同类型的外部请求。听起来您对该指令特别感兴趣,该指令限制了原始脚本通过fetch和类似api可以访问的内容 请

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

有没有办法阻止对其他服务器的js请求?即使我失去了该广告的潜在收入或被禁止进入广告网络

页面也可以使用CSP,通过网络响应上的HTTP头或页面内的标签。CSP用于控制页面可以与哪些外部源进行通信

CSP可以有许多不同的指令来控制不同类型的外部请求。听起来您对该指令特别感兴趣,该指令限制了原始脚本通过fetch和类似api可以访问的内容

请注意,脚本仍然可以通过向页面添加外部资源来启动外部请求,例如,使所有指令仅默认为与页面本身相同的来源。然后,如果需要,您可以添加更为宽松的其他特定指令

例如,此策略阻止所有外来源请求和资源,但也允许来自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,因此默认情况下它受到src的限制,并且不允许脚本与外国来源进行通信。

老实说,这听起来像是一个问题,最好用非技术性的方式解决:选择一个不允许此类请求的广告网络。诚然,即使在使用这样的广告网络时,确保它们不会意外或恶意发生可能是值得的。“我不知道是否有一个简单的方法可以做到这一点,”阿普西勒说,“你的回答似乎准确地描述了我需要什么。你能把你的评论作为答复转发给我吗?另外,我不在乎我是否被列入黑名单。问题是广告网络欺骗了他们自己的隐私政策,我的用户大声抱怨广告。。。