gpt4 book ai didi

http - 在单页应用程序中定义动态内容安全策略

转载 作者:行者123 更新时间:2023-12-03 14:46:12 24 4
gpt4 key购买 nike

我想定义一个内容安全策略,默认情况下允许从任何来源加载图像,但将其限制为仅允许网站某些部分中的一组特定来源。
在为每次导航发出新 HTTP 请求的传统网站中,这可以通过发送不同的 Content-Security-Policy 轻松完成。需要更严格策略的页面的 HTTP header 。但是在单页应用程序中,这当然是不可能的,因为导航到应用程序的更严格的部分不会导致新的 HTTP 请求(我也想定义比 URL 导航更动态的条件的策略)。
我知道——除了在 HTTP header 中——CSP 策略也可以在 meta 中定义。标签,当定义了多个 CSP 策略时,请求 must pass all of them被允许。所以我解决这个问题的第一种方法是在 Content-Security-Policy 中设置默认 CSP整个页面的标题,然后通过添加 <meta http-equiv="Content-Security-Policy" content="…"> 动态设置更多限制性策略。需要时标记到文档的头部。
这适用于动态添加更多限制性策略。最大的问题是删除该元标记或修改它不会删除或修改相关的内容安全策略(在 Firefox 中的 Chrome 中测试)。此行为在 W3C Content Security Policy spec 中定义:

Note: Modifications to the content attribute of a meta element after the element has been parsed will be ignored.


那么有没有办法动态添加(更重要的是 删除 )不依赖于 HTTP 导航的内容安全策略?我想避免在默认情况下设置限制性图像策略,然后通过散列或随机数排除单个图像,因为这将非常复杂地实现。

最佳答案

在 SPA 中,您可以每次都创建一个新的全屏 iframe 并通过脚本填充它。 <iframe> ,作为嵌套浏览上下文,无论父页面如何,都可以拥有自己的 CSP 元标记。
父页面将仅包含用于管理 iframe 内容的脚本,可能可以为此目的使用 Worker()。

关于http - 在单页应用程序中定义动态内容安全策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67052207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com