serverside protection mechanism to prevent anyone viewing javascript source
我知道你可以使用javascript obfosculator来保护javascript源代码,但我需要一个更好的解决方案。
我正在研究加密要放在某些网站上的javascript文件的选项。此javascript文件的包含方式与普通一样:
1 | <script src="http://secure.com/encryted.js"> |
这样做的目的是以某种方式阻止用户查看JavaScript的源代码,或者至少让用户更难查看。
我在想一种方法,只通过执行类似的操作返回javascript
1 | <script src="http://secure.com/validate.php"> |
号
这样,我就可以在host secure.com上检查某些条件,并且仅在满足这些条件时返回javascript(encryped)。
有人有想法或做了这样的事吗?或者知道防止JavaScript源代码被公开的好方法,或者让它变得非常困难?
ETA似乎是加密的好方法
1 | http://www.enetplanet.com/enc/ |
我的目标是让人们查看源代码/html不能"只查看"源代码有什么想法吗?
不,TEA(http://www.enetplanet.com/enc/)不是一种可以用于此类任务的工具。它只是比概念证明或玩具多一点。TEA(像其他任何加密系统一样)不能实际用于加密/保护发送到客户浏览器的javascript文件。
考虑一下:用户必须有一个加密程序的副本,才能解密来自服务器的javascript文件。在其他情况下,这本身并不是一个巨大的安全漏洞。任何加密系统都依赖于密钥的保密性,而不是加密程序/算法的保密性。
不幸的是,在谈到客户端JavaScript时,这是一个安全漏洞。加密程序(TEA)本身就是一个javascript文件。任何人都能读。修改它的方式很简单,只需打印出加密密钥,或者只需解密"受保护"的javascript文件而不进行任何检查。
此外,终端用户对网络通信信道的访问总量是无限的。他只需在电脑上安装网络嗅探器就可以读取密码(密钥)。没有密钥(也没有加密系统)可以抵御这种攻击(众所周知的"中间人"攻击)。
众所周知,没有任何真正的加密/保护JavaScript文件的方法。你能做的最好的就是把它弄混。
如果你真的需要保护某种客户端软件,你必须使用编译的软件(C/C++)、加密和某种硬件密钥。任何其他系统都很容易被"破解"(正如计算机游戏的整个历史可以证明的那样)。