能否在页面源中看到JavaScript是正常的吗?

时间:2012-05-30 16:37:07

标签: javascript

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

如果是这样,为什么他们的处理方式不同,是否有可用于隐藏JavaScript来自页面源的解决方案(由浏览器显示)?

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

谢谢!

7 个答案:

答案 0 :(得分:4)

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

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

您可以随时查看JS源代码,但您可以对其进行模糊处理。但是没有太大的意义,因为一个体面的调试器无论如何都会让你解决问题。

例如,在Webkit浏览器中使用Web Inspector,或者Firebug将允许您查看javascript并设置断点并查看变量值,因此通常可以轻松找出正在发生的事情。

这是可以的,这也是学习JS如此直接的原因之一。如果设计正确,很少会出现安全问题。

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

  

我知道像PHP这样的脚本语言不会显示出来   浏览器的页面源。它与JavaScript不一样吗?

是的,服务器端脚本在浏览器的源代码中看不到客户端脚本 JavaScript由浏览器提供并解析。

  

如果是这样,为什么他们的处理方式不同,是否有可用于隐藏JavaScript来自页面源的解决方案(由浏览器显示)?

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

http://en.wikipedia.org/wiki/Minification_(programming

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

答案 3 :(得分:1)

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

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

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

答案 4 :(得分:1)

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

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

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

另请参阅How to prevent View Source of page using Javascript?how to hide javascript code等。 - 您只能obfuscate it

答案 5 :(得分:0)

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

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

其他解决方案是缩小它,这将起到同样的作用,但将会变得非常难以理解。

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

答案 6 :(得分:0)

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