0

我了解 PHP 等脚本语言不会显示在浏览器的页面源代码中。JavaScript 不一样吗?

如果是这样,为什么它们会受到不同的对待?是否有解决方案可以从页面源中隐藏 JavaScript(由浏览器显示)?

我不需要有关如何隐藏它的详细信息,只是出于我的好奇心,如果它已经被处理过。

谢谢!

4

7 回答 7

4

PHP 在服务器上运行并产生一些输出,通常是 HTML,但也可能包括 XML、CSS、PHP、图像等。

JS 被发送到客户端,并在那里运行,所以他们需要看到它。

您始终可以查看 JS 源代码,尽管您可以对其进行混淆处理。但这没什么意义,因为一个体面的调试器无论如何都会让你解决问题。

例如,在 Webkit 浏览器或 Firebug 中使用 Web Inspector 将允许您查看 javascript 并设置断点并查看变量值,因此通常很容易弄清楚发生了什么。

不过这没关系,这也是学习 JS 如此简单的原因之一。如果设计正确,则很少会出现安全问题。

您可能会发现 JS 看起来混乱且难以阅读的网站 - 这通常是为了减小文件大小,因此您在网站上看到的所有 .min.js 文件都不会使其难以阅读。

大多数人在构建过程中自动执行此操作,而不是手动执行。为此,https://github.com/mishoo/UglifyJS是一个不错的选择。

于 2012-05-30T16:40:03.003 回答
1

您应该了解有服务器端和客户端脚本语言。您在客户端(浏览器)上看到的是服务器端脚本(PHP、Perl 等)的执行输出。

也就是说,已经开发了一些库来混淆 JavaScript 代码。

于 2012-05-30T16:39:29.230 回答
1

我了解 PHP 等脚本语言不会显示在浏览器的页面源代码中。JavaScript 不一样吗?

是的,服务器端脚本在浏览器的源代码中不可见,尽管像 JavaScript 这样的客户端脚本被馈送到浏览器并由浏览器解析。

如果是这样,为什么它们会受到不同的对待?是否有解决方案可以从页面源中隐藏 JavaScript(由浏览器显示)?

“隐藏”JavaScript 是不可能的。不过,您可以缩小和混淆脚本。

http://en.wikipedia.org/wiki/Minification_ (编程)

http://en.wikipedia.org/wiki/Obfuscation

于 2012-05-30T16:39:45.140 回答
1

PHP 没有在浏览器中“显示”,因为它不存在:它已经被呈现为 HTML 并由服务器发送到浏览器。(与 Java servlet 或 JSP 代码相同。)

内嵌 JavaScript发送到浏览器的一部分,因此它可以显示在页面源代码中。

标记中链接的 JavaScript 源<script>不显示为页面源的一部分;您只会看到标签和 URL。

于 2012-05-30T16:40:13.893 回答
1

不,您需要区分服务器端和客户端(脚本)语言。

服务器端脚本运行不可见 [从客户端] 并将其结果(任何类型,包括 js 文件)发送到浏览器。这些结果文件是公开的。

浏览器接收公共文件。其中一些可以并且将被执行。由于 JavaScript 是一种非编译语言,您将始终看到它的源代码。

另请参阅如何防止使用 Javascript 查看页面的源代码?如何隐藏 javascript 代码等 - 你只能混淆它

于 2012-05-30T16:42:34.863 回答
0

Javascript和PHP是两个不同的概念,其中一个是可以在浏览器中看到的客户端语言,另一个是隐藏在眼睛中的服务器端。

隐藏您的 javascript 代码的一种简单方法是包含在一个文件中,这样它就不会在该特定页面中看到 - 但每个人都会有一个指向它的链接,并且当他们点击它时仍然可以看到它。

其他解决方案是缩小它,它的工作原理相同,但会变得非常难以阅读。

http://en.wikipedia.org/wiki/Minification_%28programming%29

于 2012-05-30T16:44:14.470 回答
0

PHP 就像在服务器上运行的宏,它输出发送给客户端的文本。JS 是浏览器必须解释以更新页面内容的脚本。

于 2012-05-30T16:47:02.030 回答