如果有人拥有世界读/写权限,是否有可能在服务器上读取或写入我的.php文件?

时间:2011-06-02 18:52:02

标签: php security apache

如果我将PHP文件设置为chmod 777,可以窃取或更改我的PHP文件吗?

我有一个EC-2实例,即使我以EC2用户身份登录,如果我将其设置为chmod 755,我也无法更改文件。我只能在将文件设置为chmod 777时对文件进行更改。

4 个答案:

答案 0 :(得分:4)

是和否。任何通过网络查看文件的人都可以吗?但是,任何能够登录您机器的人都可以更改文件(因为它们是世界可读/可写的。)通常,这不是一个好习惯。我建议不要超过775.如果你在托管环境中,这应该不是问题。

答案 1 :(得分:3)

实际上,这里的每个人都不正确,755的文件非常错误。

这意味着,所有者可以读/写/执行。 由小组和其他所有人阅读/执行。

目录应为755,因为目录上的执行位意味着用户可以列出其内容,因为您显然无法执行目录。

执行对于webhosting脚本没有意义,因为执行位只能由shell解释,而不是php。

简而言之,目录应该是最多的,755,(rwx,rx,rx),文件应该是644(rw,r,r)。

如果您的文件具有对文件的全局读取权限,则可以非常轻松地在共享托管环境中窃取这些文件。

使用PHP

可以通过三种方式配置webhost
  1. 作为apache模块(所有脚本都以相同的用户身份运行)
  2. 作为jail / chroot中的CGI二进制文件(可以作为同一个用户运行,但是文件从文件系统的其余部分被监禁,因此其他人无法访问它们,并且您无法访问它们)
  3. 使用SuExec或suPHP(php作为网站所有者运行)
  4. 如果您的主机作为模块运行(1),那么您的文件必须是664和目录755,并且服务器上的每个人都可以读取。

    如果您的主机在jail / chroot(2)中运行,那么您的文件可能必须是664和目录755,但它们受到保护。

    如果您的主机使用suExec或suPHP,则您的php文件应为640,目录为750,否则其他人可以访问您的脚本。您甚至可以将其进一步限制为600和700,但是apache仍然需要读取普通文件(而不是脚本),因此您需要更进一步,确保文件归您所有,但是Web服务器正在运行的组。

答案 2 :(得分:1)

如果他们有权访问您的服务器并拥有有效的用户名/密码,他们可以修改/窃取您的文件。 chmod 777允许任何人读取和写入您的文件(以及执行它们)。

因此,例如,如果您在共享服务器上托管您的网站,那么在该服务器上运行的其他网站将能够访问您的文件并对其进行修改,即使它们在不同的用户环境中运行。

答案 3 :(得分:0)

窃取是的 如果你不使用.htacces是啊:) 为什么你使用chmod 777?

UPDATE
有人可以下载文件吗?
wget http://xxx.xxx/update.php~有效