能够在页面源代码中看到JavaScript是否正常

Is it normal to be able to see JavaScript in page source?

本文关键字:JavaScript 是否 源代码      更新时间:2023-09-26

我知道像PHP这样的脚本语言不会显示在浏览器的页面源代码中。JavaScript 不是一样吗?

如果是这样,为什么它们的处理方式不同,是否有解决方案可以从页面源代码中隐藏JavaScript(由浏览器显示)?

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

谢谢!

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

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

您始终可以查看JS源代码,但可以对其进行混淆。不过没有多大意义,因为一个体面的调试器无论如何都会让你解决问题。

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

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

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

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

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

也就是说,已经开发了用于混淆JavaScript代码的库。

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

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

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

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

是的,

服务器端脚本在浏览器的源代码中不可见,尽管客户端脚本像JavaScript 由浏览器提供和解析。

如果是这样,为什么它们的处理方式不同,是否有解决方案可以从页面源代码中隐藏JavaScript(由浏览器显示)?

"隐藏"JavaScript是不可能的。但是,您可以缩小和混淆脚本。

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

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

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

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

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

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

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

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

另一种解决方案是将其缩小,这将工作相同,但将非常难以阅读。

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

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