IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 开源Golang rtmp服务lalserver支持多种鉴权防盗链方式 -> 正文阅读

[网络协议]开源Golang rtmp服务lalserver支持多种鉴权防盗链方式

lalserver是纯Golang开发的流媒体服务器。支持RTMP, RTSP(RTP/RTCP), HLS, HTTP[S]/WebSocket[S]-FLV/TS协议。

目前已支持多种鉴权防盗链的方式。

lal github地址: https://github.com/q191201771/lal

▌ 方式一. 固定值的鉴权参数

首先,修改配置文件,如下:

"conf_version": "v0.2.6",
...
"simple_auth": {
    "key": "q191201771",              // 私有key,计算鉴权参数时使用
    "dangerous_lal_secret": "pengrl", // 后门鉴权参数,所有的流可通过该参数值鉴权
    "pub_rtmp_enable": true,          // rtmp推流是否开启鉴权,true为开启鉴权,false为不开启鉴权
    "sub_rtmp_enable": true,          // rtmp拉流是否开启鉴权
    "sub_httpflv_enable": true,       // httpflv拉流是否开启鉴权
    "sub_httpts_enable": true,        // httpts拉流是否开启鉴权
    "pub_rtsp_enable": true,          // rtsp推流是否开启鉴权
    "sub_rtsp_enable": true,          // rtsp拉流是否开启鉴权
    "hls_m3u8_enable": true           // m3u8拉流是否开启鉴权
}
...

方式一和方式二的配置都在配置项simple_auth下管理:

  • pubsub开头的字段决定了各协议是否开启鉴权
  • dangerous_lal_secret为鉴权参数的值
  • key在下面方式二中使用,这里暂时不关心

举例,没开启鉴权功能时,推rtmp流的url是rtmp://127.0.0.1:8080/live/test110

开启后,业务方推流url是变为

rtmp://127.0.0.1:8080/live/test110?lal_secret=pengrl

其中lal_secret就是鉴权签名参数,名字是固定的,值也是固定的,对应配置文件中dangerous_lal_secret的值。

该鉴权方式,所有流都使用同一个鉴权参数值。

▌ 方式二. MD5签名的鉴权参数

首先,依然是修改配置文件(参见上面方式一中的描述):

  • pubsub等开头的字段决定了各协议是否开启鉴权
  • key用来做MD5签名

举例,没开启鉴权功能时,推rtmp流的url是rtmp://127.0.0.1:8080/live/test110

开启后,业务方推流url是变为

rtmp://127.0.0.1:8080/live/test110?lal_secret=700997e1595a06c9ffa60ebef79105b0

其中lal_secret就是鉴权签名参数,名字是固定的,值的计算公式是

md5(配置文件中的simple_auth::key + 流名称)

上面的例子对应的计算方式是

md5("q191201771test110")

Go、c++代码以及命令行、网页工具如何计算MD5见:使用工具或代码生成MD5 - 仁亮笔记

该鉴权模式下,不同的流名称对应不同的鉴权参数。

注意,方式一和方式二可同时使用。lal_secret的值满足任意一种计算方式即可鉴权通过。

▌ 方式三. 与业务方服务交互,自由定制鉴权方式

大体的逻辑是,lalserver在接收到推流或者拉流请求时,使用http回调的方式通知业务方的服务。

业务方的服务根据自身的逻辑,判定这个推流或者拉流请求是否合法。

如果不合法,使用lalserver提供的http api接口将该请求踢掉。

相关文档:

第三方文档

  • https://help.aliyun.com/document_detail/199349.html
  • https://cloud.tencent.com/document/product/267/32735
  • https://www.wangsu.com/document/99/171?rsr=ws
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:25:55  更:2022-04-06 16:25:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:54:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码