我知道PHP等脚本语言不会显示在浏览器的页面源代码中。它与JavaScript不一样吗?
如果是这样,为什么他们的处理方式不同,是否有可用于隐藏JavaScript来自页面源的解决方案(由浏览器显示)?
我不需要有关如何隐藏它的详细信息,只是出于我的好奇心,如果它已被处理。
谢谢!
答案 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是不可能的。但是,您可以缩小和混淆脚本。
答案 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>
其他解决方案是缩小它,这将起到同样的作用,但将会变得非常难以理解。
答案 6 :(得分:0)
PHP就像在服务器上运行的宏,它输出发送到客户端的文本。 JS是浏览器必须解释的脚本,用于更新页面内容。