javascript - 使用javascript在源代码中更改页面加载时的域名
问题描述
前几天我在玩 url,我想知道是否有办法例如在源代码中的页面加载时用域名替换视频链接,同时让浏览器仍然解释原始链接来播放视频正确。
例如,如果我使用以下链接在我的服务器上托管 .mp4:
<source src="https://goofy.com/dogs.mp4" type="video/mp4" label="Low" res="360">
我希望它在源代码中显示为:
<source src="https://snoopy.com/dogs.mp4" type="video/mp4" label="Low" res="360">
但是仍然在播放器中播放傻瓜,这可能吗?(也许用javascript?)
我在这里想要达到的目标不需要那么先进,当我的意思是“刮”时,我只是在想人们手动打开检查器并简单地抓住链接,在我的例子中:
https://goofy.com/dogs.mp4
所以我宁愿在页面加载上考虑一些简单的javascript字母替换方案,它会显示一些随机字母而不是“傻瓜”。也许是这样的:
var chars = {'a':'b','c':'z','i':'e'};
var enc;
var str = "goofy.com";
window.onload = function() {
enc = str.replace(/[abc]/g, m => chars[m]);
alert(enc);
};
但我认为它不起作用,因为播放器最终会使用错误的域名播放 url。我不太擅长 javascript,所以我也不确定我在做什么......请随时纠正我或提供一些解决方案?谢谢。
解决方案
根据您的评论回复,您想要混淆视频文件的源 URL。
不,修改<source/>
DOM 元素中的 url 不会为您做任何事情。机器人正在从您的站点获取原始 html,因此如果原始源 URL 嵌入其中,您将无法隐藏任何内容。
向上移动一点,看看 Youtube 是如何处理他们的 url 结构的。他们的核心是一个 js 库,可以在运行时动态处理构建视频 url 和视频播放器。虽然它被高度混淆,但发现实际的视频网址是什么并在需要时下载它们并不是大量的工作。如果有人真的想获取您的视频,那么在浏览器中使用开发工具调查该页面并没有太多工作。
在底层,它可以任意运行像 Charles 代理这样的数据包嗅探器,中间有一个人在本地 SSL 代理服务(内置)中查看来回发送的请求并轻松追踪源 URL传送视频。
您可以回到 10 年前并尝试使用 Flash 或其他一些嵌入式 3rd 方插件来“加密”视频流,但这很愚蠢而且会弄巧成拙。如果我真的想要你的视频,我会全屏播放并记录在我的电脑上。
希望能更彻底地回答您的问题。
推荐阅读
- java - 在 Android Studio 中保存实例状态:Kotlin
- wireshark - 将 pcap 文件转换为 csv:对于某些数据包,Tshark 在一行中显示多个 src,dst IP 地址
- c# - 使用 ProtectedData.Unprotect() 函数的 C# 错误
- elasticsearch - 使用外部托管的 Elasticsearch 实例进行高级搜索
- docker - 如何使用 dockerfile 安装任何应该在主机中可用的软件?
- python - 有没有办法保存python中不断变化的变量的值?
- java - 如何在 WebClient 中正确获取自定义错误正文消息?
- model-view-controller - .NET Core 3.1 - MVC - List<> 值未从角度模型映射
- ios - 具有估计高度的 CollectionView 组合布局仅显示 _UICollectionViewOrthogonalScrollerEmbeddedScrollView
- python - 正则表达式从 mroute 数据库的多行输出创建嵌套字典