我了解 PHP 等脚本语言不会显示在浏览器的页面源代码中。JavaScript 不一样吗?
如果是这样,为什么它们会受到不同的对待?是否有解决方案可以从页面源中隐藏 JavaScript(由浏览器显示)?
我不需要有关如何隐藏它的详细信息,只是出于我的好奇心,如果它已经被处理过。
谢谢!
我了解 PHP 等脚本语言不会显示在浏览器的页面源代码中。JavaScript 不一样吗?
如果是这样,为什么它们会受到不同的对待?是否有解决方案可以从页面源中隐藏 JavaScript(由浏览器显示)?
我不需要有关如何隐藏它的详细信息,只是出于我的好奇心,如果它已经被处理过。
谢谢!
PHP 在服务器上运行并产生一些输出,通常是 HTML,但也可能包括 XML、CSS、PHP、图像等。
JS 被发送到客户端,并在那里运行,所以他们需要看到它。
您始终可以查看 JS 源代码,尽管您可以对其进行混淆处理。但这没什么意义,因为一个体面的调试器无论如何都会让你解决问题。
例如,在 Webkit 浏览器或 Firebug 中使用 Web Inspector 将允许您查看 javascript 并设置断点并查看变量值,因此通常很容易弄清楚发生了什么。
不过这没关系,这也是学习 JS 如此简单的原因之一。如果设计正确,则很少会出现安全问题。
您可能会发现 JS 看起来混乱且难以阅读的网站 - 这通常是为了减小文件大小,因此您在网站上看到的所有 .min.js 文件都不会使其难以阅读。
大多数人在构建过程中自动执行此操作,而不是手动执行。为此,https://github.com/mishoo/UglifyJS是一个不错的选择。
您应该了解有服务器端和客户端脚本语言。您在客户端(浏览器)上看到的是服务器端脚本(PHP、Perl 等)的执行输出。
也就是说,已经开发了一些库来混淆 JavaScript 代码。
我了解 PHP 等脚本语言不会显示在浏览器的页面源代码中。JavaScript 不一样吗?
是的,服务器端脚本在浏览器的源代码中不可见,尽管像 JavaScript 这样的客户端脚本被馈送到浏览器并由浏览器解析。
如果是这样,为什么它们会受到不同的对待?是否有解决方案可以从页面源中隐藏 JavaScript(由浏览器显示)?
“隐藏”JavaScript 是不可能的。不过,您可以缩小和混淆脚本。
PHP 没有在浏览器中“显示”,因为它不存在:它已经被呈现为 HTML 并由服务器发送到浏览器。(与 Java servlet 或 JSP 代码相同。)
内嵌 JavaScript是发送到浏览器的一部分,因此它可以显示在页面源代码中。
标记中链接的 JavaScript 源<script>
不显示为页面源的一部分;您只会看到标签和 URL。
不,您需要区分服务器端和客户端(脚本)语言。
服务器端脚本运行不可见 [从客户端] 并将其结果(任何类型,包括 js 文件)发送到浏览器。这些结果文件是公开的。
浏览器接收公共文件。其中一些可以并且将被执行。由于 JavaScript 是一种非编译语言,您将始终看到它的源代码。
另请参阅如何防止使用 Javascript 查看页面的源代码?,如何隐藏 javascript 代码等 - 你只能混淆它。
Javascript和PHP是两个不同的概念,其中一个是可以在浏览器中看到的客户端语言,另一个是隐藏在眼睛中的服务器端。
隐藏您的 javascript 代码的一种简单方法是包含在一个文件中,这样它就不会在该特定页面中看到 - 但每个人都会有一个指向它的链接,并且当他们点击它时仍然可以看到它。
其他解决方案是缩小它,它的工作原理相同,但会变得非常难以阅读。
PHP 就像在服务器上运行的宏,它输出发送给客户端的文本。JS 是浏览器必须解释以更新页面内容的脚本。