首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安全HLS AES-128密钥URI

安全HLS AES-128密钥URI
EN

Stack Overflow用户
提问于 2021-06-22 05:40:14
回答 1查看 411关注 0票数 1

我用HLS file 128加密视频,使用apple工具,下面是我的m3u8文件。

代码语言:javascript
复制
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=AES-128,URI="https://xxxxx.com/api/xxx/xxxxx/xxxxxxxxxxxx/xxxxxxx.key"
#EXTINF:10, 
#EXT-X-BITRATE:658
8ce9e1ef-4b15-4d22-b2dc-c7278757ffb5_0.ts
#EXTINF:10, 
#EXT-X-BITRATE:1798
8ce9e1ef-4b15-4d22-b2dc-c7278757ffb5_1.ts
#EXTINF:1,  
#EXT-X-BITRATE:620
8ce9e1ef-4b15-4d22-b2dc-c7278757ffb5_2.ts
#EXT-X-ENDLIST

键URI是我的API端点URL。我将从API中获得密钥。

但是每当我在浏览器中复制粘贴密钥URI (https://xxxxx.com/api/xxx/xxxxx/xxxxxxxxxxxx/xxxxxxx.key)时,密钥就会被下载。

当玩家请求键URI时,如何通过标题授权。

或者是否有任何方法来保护密钥URI?

我正在播放Bitmovin (Nodejs)的视频,我们能通过密钥请求URI的头授权吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-03-08 09:40:39

保护web的一种常见方法是使用JSON Web令牌 (JWT)并使用授权 HTTP请求头将它们发送到API。

至于Bitmovin (我是其中的一个开发人员),可以使用Network的preprocessHttpRequest方法将headers添加到请求中。例如,可以通过以下方式将JWT令牌传递给HLS密钥请求的API:

代码语言:javascript
复制
const token = 'your-jwt-token';
const playerConfig = {
  key: 'your-key',
  network: {
    preprocessHttpRequest: (type, request) => {
      // Only add the `Authorization` header to HLS key requests
      if (type === bitmovin.player.HttpRequestType.KEY_HLS_AES) {
        // Add the `Authorization` header containing the JWT to the request
        request.headers['Authorization'] = 'Bearer ' + token;
      }

      return Promise.resolve(request);
    }
  }
};

const player = new bitmovin.player.Player(document.getElementById('player'), playerConfig);

您不必使用JWTs -您可以使用Authorization头将任意数据传输到API。但是,使用JWT更安全,因为这些令牌通常由受信任的源(如谷歌的OpenID连接)生成,并被签名以防止任何修改。如果您想使用JWT进行身份验证,则您的API必须提供一个端点来获取它们。

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

https://stackoverflow.com/questions/68078095

复制
相关文章

相似问题

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