可以查看网站的PHP代码吗?

时间:2010-06-08 07:08:36

标签: php html linux security

是否有可能以某种方式查看其他网站的php文件/代码?

或者重新解释一下这个问题,除了那些有权访问该文件的人外,我的php代码可以被任何人查看吗?

如果是这样,我怎样才能最好地阻止这种情况?

Ps:服务器操作系统是Ubuntu 9.10,PHP版本是5+(Apache2)

3 个答案:

答案 0 :(得分:43)

服务器(Apache或PHP引擎)中的错误或安全漏洞或您自己的PHP代码可能允许攻击者获取对您代码的访问权。

例如,如果你有一个允许人们下载文件的PHP脚本,并且攻击者可以欺骗这个脚本下载你的一些PHP文件,那么你的代码就会被泄露。

由于无法消除您正在使用的软件中的所有错误,如果某人真的想要窃取您的代码,并且他们有足够的资源,那么他们就有可能

但是,只要您使服务器保持最新,除非您的代码中存在明显的安全漏洞,否则有兴趣的人无法看到PHP源代码。

阅读Security section of the PHP manual作为保持代码安全的起点。

答案 1 :(得分:1)

通过使用漏洞或在配置错误的服务器上,可以下载PHP源代码。然而,如果你想确保你的源代码不可读(你可以确切地说,如果有足够的时间/资源,可以反过来混淆,你可以对代码进行模糊处理和/或加密(使用Zend Guard,Ioncube或类似的应用程序) ,但我还没有找到IonCube或Zend Guard解密器......)。

答案 2 :(得分:0)

除了有权访问该文件的人之外,没有人会阅读该文件。您必须使Web服务器的代码可读(但不可写)。如果php代码处理程序正常运行,则无法通过Web服务器的名称请求来读取它。

如果有人妥协您的服务器,您将面临风险。确保Web服务器只能写入绝对需要的位置。 / var下有一些位置应由您的发行版正确配置。它们不应该通过网络访问。 / var / www不应该是可写的,但可能包含Web服务器为动态内容写入的子目录。应禁用代码处理程序。

确保您在PHP代码中不执行任何可能导致代码注入的操作。另一个风险是使用包含..或以/开头的路径进行目录遍历。在处理路径时,应该已经修补了Apache以防止这种情况。但是,当它运行代码(包括php)时,它不会控制路径。避免任何允许Web客户端传递文件路径的内容。