内容安全策略media-src完全指南:保护媒体资源安全

本文详细介绍了HTTP内容安全策略中的media-src指令,包括其定义、语法配置、实际应用示例和违规案例分析,帮助开发者有效控制网页音频视频资源的加载来源,提升Web应用安全性。

Bug Bounty Hunting — 完全指南(第129部分)

🎵 什么是Content-Security-Policy: media-src?

media-src指令是HTTP内容安全策略(CSP)头的一部分,用于指定网页上加载媒体资源的有效来源。这适用于通过<audio><video>HTML元素加载的内容,以及<track>元素(如字幕或标题)的来源。

它作为一种安全控制措施,确保音频和视频内容仅从受信任的位置加载。

可用性:此功能在现代Web浏览器中得到广泛支持,自2016年8月左右开始可用。

🛠️ 如何使用media-src(语法和值)

您可以在HTTP Content-Security-Policy头中包含media-src指令。

描述
'none' 阻止加载所有媒体资源(音频/视频)。单引号是必需的。
<source-expression-list> 空格分隔的批准来源列表。媒体仅在其源URL与这些表达式之一匹配时才会加载。

来源表达式

批准的来源列表可以包括:

  • 'self':允许从与文档相同的来源(协议、主机和端口)加载媒体。
  • <host-source>:特定域,例如https://my-trusted-media.com。
  • <scheme-source>:特定协议,例如https:。

示例语法

1
Content-Security-Policy: media-src 'self' https://video-cdn.example.net;

🚫 违规案例示例

如果您将CSP头设置为仅允许来自一个域的媒体:

1
Content-Security-Policy: media-src https://example.com/

浏览器将阻止以下HTML元素,因为它们的来源(https://not-example.com/)与批准的来源不匹配:

1
2
3
4
<audio src="https://not-example.com/audio"></audio>
<video src="https://not-example.com/video">
<track kind="subtitles" src="https://not-example.com/subtitles" />
</video>

↘️ 回退行为

如果media-src指令未在策略中明确定义,浏览器将使用default-src指令中指定的规则来确定媒体的有效来源。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计