您好 我有一些javascript代码,我的页面中包含一个脚本。我想隐藏这个脚本(obfuscate),这样难以让用户看到带有源视图的代码?有没有办法做到这一点?
编辑:从逻辑上讲,专家用户喜欢所有stackoverflow用户,总能找到源代码。答案 0 :(得分:4)
对于每个混淆器,都存在一个非混淆器。
如果您要隐藏代码,请使用ajax并在服务器上执行秘密操作。
编辑: 可以在页面加载并运行之后下载javascript(在初始加载后这应该可以正常工作以扩展运行时,但代码仍然可以传输到客户端,并且可以在客户端读取人员)。
我要传达的是,您的关键代码应仅在服务器上运行,并将结果返回给客户端。
答案 1 :(得分:3)
只需使用任何缩小器:Google Closure Compiler,YUI compressor是最受欢迎的。
这些将删除所有空格,注释,并在可能的情况下将变量/函数名称更改为单字符名称。
或者,如果你想要更加极端,这个工具会将变量名和字符串转换为Hex:http://www.javascriptobfuscator.com/default.aspx
答案 2 :(得分:2)
您可以做的最好的事情是定义自己的晦涩语言,称之为#
然后编写两个编译器,#
到JavaScript(这个需要在JavaScript中)& JavaScript到#
然后在客户端上只有一个文件,它从服务器获取#
中的一些源代码,然后在运行中逐行编译/评估它。
当然#
需要模糊,JavaScript - > #
编译器是这样的,您只需用JavaScript编写代码并预编译为#
并将其存储在服务器上。
这不安全。人们可以阅读编译器并弄清楚JavaScript等价物是什么,但是如果你能找到我一个足够关心它的人,我会留下深刻的印象。
一个小的副作用是,您在客户端的严重破坏性表现仅仅是因为对隐藏源代码的痴迷。
[编辑]
当然,我们用最小化器来模糊编译器,并确保编译器,编译和放大器。在内部运行,无需在任何地方转换为易于阅读的javascript。
答案 3 :(得分:1)
你可以做的没有可以完全“保护”代码被任何可以在你检测到它被用于的情况下取得法律行动的人获取,阅读,理解和使用你认为这种方式侵犯了你的版权。
有各种压缩机;我使用YUIcompressor。