隐藏页面源代码中的脚本

我想从源代码中隐藏一段Javascript。 我想到的方法是使用PHP包含脚本文件,但这似乎没有用。

有人对我有什么建议吗? 如果您需要我的脚本副本,请询问。

在此先感谢Callum

你不能完全隐藏客户端的Javascript,就像这里的每个人都说的那样。

你能做的就是尽可能让你的Javascript变得难以阅读。

这样做的一种方法是混淆它。 在混淆之前,随机命名你的函数和变量,所以它们并不代表任何与它们代表什么相关的东西等等。所以最后你的代码看起来像这样:

 

或者尝试使用服务器端语言(如PHP或Python)创建相同的内容。

无论您如何交付,都无法阻止用户查看您的JavaScript源代码。 任何试图查看您的来源的用户都可能具备这样做的专业知识。 您正在向客户端提供一个脚本来运行,因此无论是在页面中,包含在页面中,AJAX获取还是打包,它都无关紧要,它仍然可见并且在某种程度上可以轻松复制。

您无法隐藏JavaScript源代码,因为需要将其传输到浏览器以供执行。 您可以做的是使用压缩器来混淆代码。 我相信jQuery使用Google的Closure编译器 。

无论我们采用什么隐藏机制,脚本最终都必须在浏览器中运行。 将函数作为序列化的JSON对象发送可能有点帮助,但是当使用浏览器特定的检查工具检查XHR对象时,这将再次清晰可见。

这是我想说的简单演示。 关键的javascript代码如下所示

 if (xmlHttp.readyState == 4) { ret_value=xmlHttp.responseText; var myObject = eval('(' + ret_value + ')'); document.getElementById("result").value=myObject(addend_1,addend_2); } 

正如您所看到的,执行计算的实际函数由php脚本返回,而在源文件中无法查看。 需要注意的是,我在这里使用了eval ,只有在接受来自可信来源的数据时才应该使用eval (请参阅下面的注释)。 如前所述,虽然这有助于您的代码隐藏工作,但可以使用所有现代浏览器中提供的检查工具或使用curl或任何其他编程方式发布到URL来查看该function。

编辑:在阅读了JSON并测试JSON.parse后,我理解JSON不能用于方法,纯粹是为了数据交换,请参见此处 。

我认为你能做的最好的事情是1)把它放到一个单独的.js文件中并链接到它(这会将它从主HTML源中删除)和2)然后混淆代码,这会混淆任何人(任何人都是)谁想要阅读它,但他们仍然拥有所有代码。 由于JavaScript是在客户端运行的,因此脚本的副本将始终下载到用户计算机。 如果您使用服务器端运行的语言对其进行编码,则会阻止人们查看源代码。