是否有可能读取另一台服务器上未执行输出的php文件中的代码?

时间:2014-07-11 11:01:11

标签: php security filesystems chmod

linux服务器上文件的默认权限是644,这意味着每个人都可以读取。我读了一些文章,建议将配置文件的权限更改为600.这是否意味着如果启用了读取权限,黑客可以通过某种方式查看php文件中的代码?

黑客有没有办法利用文件的644权限?

1 个答案:

答案 0 :(得分:0)

“每个人都可读”包括在您的服务器上漫游的黑客,所以是的,如果黑客能够访问您的服务器,则能够读取文件内容。 如果黑客甚至在您的服务器上获得root权限,则权限无关紧要,因为他可以读取所有文件。

如果黑客无法直接访问您的服务器,而是试图破解您的网站(或您提供的其他在线(PHP)服务),则黑客能够以某种方式(错误地)获取对该文件的访问权限)提供文件的内容(例如,通过包含一些不应包含的文件)。假设服务没有以root权限运行,文件权限也能够阻止服务(以及黑客)读取内容。

例如,假设您要计算文件的下载量,您可以使用:

$download = $_GET['download'];
updateDownloadCounter($download);
// Send file to user
readfile($download);

如果'黑客'使用download.php?download=/etc/shadow您的服务器密码(至少是用户帐户的哈希值)将作为一个不错的下载发送给'黑客'。 (对于这个明显的例子,黑客似乎太讨人喜欢了:P)

将文件权限设置为600有助于防止黑客读取文件内容,因为php具有root权限并且无法读取文件内容。

请注意,有很多方法可以获取文件内容,因此只有/仅设置权限不足以保证您的安全。