直接回答
更喜欢单独的用户名和密码字段。 如果客户端需要 RTSP URI 内的凭据,请对用户信息组件中的保留字符进行百分比编码,并使用非管理员帐户进行测试。
为什么会发生这种情况
@、:、#、%、? 等字符 和 / 在 URI 中具有结构意义。 因此,未编码的密码可能会更改主机或路径的开始位置。
将 URL、凭据、地址族和 RTP 传输视为可以独立失败的单独变量。
受控测试
首先使用使用非保留字符的临时测试帐户证明端点,然后恢复强密码并验证客户端记录的编码行为。
一次更改一个变量。 记录相机型号、固件、终端、账号; 然后将网络可达性、协议响应、媒体传输和解码作为单独的层进行测试。
使用专用的仅供查看的帐户和值得信赖的本地诊断工具。 在共享输出之前编辑凭证、私人地址和识别数据。
诊断顺序
| 查看 | 行动 | 进展的证据 |
|---|---|---|
| 领域 | 如果可用,请使用专用凭证字段。 | URL 不包含任何秘密,并且解析一致。 |
| 编码 | 仅对凭证组件进行编码,而不对整个 URL 进行编码。 | 主机、端口和路径仍然可读。 |
| 日志 | 查看屏幕截图并调试输出以了解暴露的秘密。 | 凭证在共享之前经过编辑。 |
| 帐户 | 使用唯一的仅供查看的相机帐户。 | 妥协并不授予管理权限。 |
保留证据
记录原始字符类和编码形式,而不记录真实密码。 一个综合示例足以重现解析行为。
边界和安全说明
切勿将真实的带有凭据的 RTSP URL 粘贴到公共在线播放器、搜索框、问题跟踪器或分析工具中。
对于远程查看,请使用托管 VPN,而不是将 RTSP 或摄像机管理端口直接暴露到公共互联网。
SmartRTSP
SmartRTSP 是一款以相机为中心的 RTSP 和 ONVIF 查看器,适用于 Apple 设备、Windows 和 Android。 适合直接观看、发现和多机位检查; 当需要连续记录、证据导出或集中企业控制时,保留专用的 NVR 或 VMS。
常见问题
如果我的密码包含@怎么办?
使用单独的密码字段或将凭证组件中的 @ 进行百分比编码为 %40。
我应该对整个 RTSP URL 进行编码吗?
不会。对整个 URL 进行编码也可以隐藏所需的分隔符; 仅对需要它的组件进行编码。
将凭证放入 URL 安全吗?
它增加了通过日志、历史记录和屏幕截图泄露的可能性,因此最好单独存储凭证。
主要参考文献
相关 SmartRTSP 指南
打开相关指南防止保留的密码字符被误读为 RTSP URI 分隔符,同时避免凭据泄漏。