如何在实时网站上查看PHP源代码?

21

有没有可能查看正在运行的网站的PHP代码?


33
希望不会发生这样的事情。这样做将成为一场安全噩梦。 - The Disintegrator
4
我添加了安全标签,因为它似乎很相关。 - Mike B
12个回答

27

不行,因为它在服务器端被解释并将结果发送给用户。如果您想在浏览器中查看自己控制的站点的源代码,请考虑使用FirePHP扩展程序和Firebug,或者使用您喜欢的方法访问您的站点文件。


他们可以从我们的房子访问我们的数据。那么为什么我们不能了解他们呢?数据包括IP、位置、ISP、国家等。http://ip-api.com/json - Gray Programmerz

9
通常情况下,不会显示PHP源代码,正如其他人所说,除非你想要这样做。那么你可以设置 .phps(或任何其他扩展名,但这是通常的做法)来显示页面的源代码(我相信还可以进行语法着色)。像这样的东西:
在你的Apache配置中添加以下内容应该就可以了:
AddHandler application/x-httpd-php-source .phps
请注意,你需要将你的 .php 文件保存为 .phps 才能显示它们的源代码。

<FilesMatch \.phps$>部分内使用SetHandler语句也是可行的,这似乎是CentOS在其Apache配置中的做法。这对于教学或学习PHP来说很有用(显然对于任何“重要”的PHP应用程序都是安全问题,正如其他地方所提到的),但在Unix平台上,您可以只需创建一个带有.phps扩展名的符号链接到原始源文件,这使它看起来像是一种“查看PHP源代码”的方式。 - TheDudeAbides

8

大家都错了!是的,这是可能的!但如果您在Web浏览器中看到代码,则这将是严重的安全漏洞或Web服务器中的一些主要问题。我曾经见过这种情况发生过一次,其中一些愚蠢的管理员已删除了IIS的PHP扩展,因此浏览器提供所有源文件作为文本文件而不是执行它们。

另外,还有一种替代方法,即通过FTP。大多数网站通过FTP提供对其文件系统的访问权限,因此管理员不需要物理访问系统。您需要知道用户名和密码以及FTP地址才能获得访问权限,但是一旦您拥有此信息,您就可以访问整个站点。对于管理员非常有用,但也是非常小心密码的一个很好的理由。


9
我认为你的第一段已经被“除非管理员出了问题”的表述覆盖了,这个表述至少被提到了两次。 - deceze
3
没错,但是那些回答“不”的回复是错误的。有各种各样的原因 -包括管理员搞砸了事情- 可能会导致PHP源代码被显示出来。如果服务器应用程序(IIS或Apache)本身存在漏洞或黑客入侵,则可能也会绕过标准行为(因此是一个漏洞)。幸运的是,这些类型的漏洞很少见,但黑客可能能够修改服务器软件的行为以弄乱事情。而且没有服务器是100%防黑客的! - Wim ten Brink

3

2

您是否可以访问生产服务器上的文件?如果是,那么可以,否则不行,只能查看脚本执行的结果。


2
不会,除非服务器管理员出了问题。

2

只要PHP正确地配置,就不会出现这种情况。

PHP已经被解释为访问者提供服务。

在一个实际运行的网站上看到PHP代码将被视为黑客行为,这超出了stackoverflow的道德范围。


11
SO有伦理范围吗? - nilamo
7
不,但我们可以假装有。 - yaakov
嗯,那会很有趣。 - Attaroqqi

1

你不能这样做。 因为服务器端脚本(例如PHP脚本)在Web服务器上执行,其输出被嵌入HTML中,然后返回到浏览器。 因此,你只能查看HTML。 想象一下,如果你所要求的是可能的,那么现在每个人都会拥有Facebook、Flipkart的源代码了。


0

不行,因为这被视为安全漏洞。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接