可以查看网站的PHP代码?

是否有可能以某种方式查看另一个网站的PHP文件/代码?

或者换个问题,我的php代码可以被任何人查看,除了那些有权访问该文件的人吗?

如果是这样,我怎样才能最好的防止这个?

Ps:Server OS是Ubuntu 9.10,PHP版本是5+(Apache2)

Solutions Collecting From Web of "可以查看网站的PHP代码?"

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

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

既然不可能消除你使用的软件的所有bug,如果有人真的想窃取你的代码,而且他们有足够的资源,那么他们有一个合理的机会。

但是,只要您保持服务器的最新状态,偶然有兴趣的人就无法看到PHP源代码,除非您的代码中存在一些明显的安全漏洞。

阅读PHP手册的Security部分,作为保证代码安全的起点。

通过使用漏洞或在配置错误的服务器上,可以下载您的PHP源代码。 然而,如果你想确保你的源代码不可读(准确的话,你可以使用Zend Guard,Ioncube或类似的应用程序来混淆和/或加密你的代码),只要给予足够的时间/资源,但我还没有找到一个IonCube或Zend卫士解密器呢…)。

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

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

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