据我了解,您下载桌面应用程序时获得的大部分内容都是二进制代码,已编译的代码(除非应用程序要求您的PC安装了X解释器)。我们不能用JavaScript做类似的事情,用户不能琐事 修改网站的预期互动性?
我知道这是不可能的,因为网络和浏览器的运作方式。您的浏览器请求一个站点,该站点以.js
文件(实际存储在您的PC中的某个位置,可以通过浏览器工具,或您的文件浏览器查看)和浏览器的响应JavaScript解释器执行它,现在甚至编译它,我想。
但是,不能以某种方式修改浏览器的内部工作方式,例如,服务器向您发送“已编译”的JavaScript?或者可能会向您发送加密的JS文件,然后浏览器会编译它们并通过开发人员的控制台(和网站的源代码)使未编译的代码无法访问?
理论上这是否可行,如果对网络和网络浏览器的工作方式进行了改动?我可以想到这个的一些缺点,比如,你不知道到底是什么鬼真正下载(但大多数用户一般都不知道),它打破了Web的一些开放性,但它也可能使应用程序更安全,不是吗?
答案 0 :(得分:3)
简短回答是“不”很长的答案是“Noooooooooo。”
除了开玩笑之外,你提出的建议被称为“混淆”,并且不会比现在存在更安全。
例如,假设Javascript已加密。浏览器将如何解密它?他们需要钥匙,对吗?因此,当浏览器执行时,未加密的代码将在浏览器的内存中可用。这仅仅为试图访问代码的人提高了标准。
当然,可能会阻止更多人访问代码,但这不应与“更安全”相混淆。
答案 1 :(得分:1)
javascript捆绑和缩小可以在某种程度上保护或使javascript代码对最终用户的可读性降低。
答案 2 :(得分:1)
理论上,是的。
事实上,Encrypted Media Extensions引入了类似的概念,但对于媒体元素:
加密媒体扩展(EME)是W3C草案规范 提供Web浏览器和Digital之间的通信通道 权利管理代理软件。
EME在W3C中备受争议,因为它放置了一个 必然是专有的,封闭的组成部分 一个完全开放的自由软件生态系统。
希望W3C不会那么狂任意JavaScript代码做同样的。