如果某人具有全局读/写权限,是否可以在服务器上读或写my.php文件?

如果某人具有全局读/写权限,是否可以在服务器上读或写my.php文件?,php,security,apache,Php,Security,Apache,如果我将PHP文件设置为chmod 777,是否有人可以窃取或更改我的PHP文件 我有一个EC-2实例,即使我以EC2用户身份登录,如果我将它们设置为chmod 755,我也无法更改我的文件。我只能在将文件设置为chmod 777时对其进行更改 是的 如果您不使用。htacces耶:) 为什么使用chmod 777 更新 任何人都可以下载文件号? wgetworks如果他们可以访问您的服务器并拥有有效的用户名/密码,他们可以修改/窃取您的文件chmod 777允许任何人读取和写入您的文件(以及

如果我将PHP文件设置为
chmod 777
,是否有人可以窃取或更改我的PHP文件

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

是的
如果您不使用。htacces耶:)
为什么使用chmod 777

更新
任何人都可以下载文件号?

wget
works

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


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

是和否。任何人可以通过网络查看文件吗?不可以。但是,任何有能力登录到您的计算机的人都可以更改文件(因为它们是世界可读/写的)。一般来说,这不是一个好的做法。我建议不允许超过775次。如果您在托管环境中,这应该不是问题。

实际上,这里的每个人都不正确,755对于一个文件来说是非常错误的

这意味着,由所有者读取/写入/执行。 由团队和其他人读取/执行

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

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

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

如果您的文件具有全局读取权限,那么您的文件在共享托管环境中很容易被盗

使用PHP配置webhost有三种方法

  • 作为apache模块(所有脚本都以同一用户的身份运行,不管如何)
  • 作为jail/chroot中的CGI二进制文件(可能以同一用户的身份运行,但文件是从文件系统的其余部分存储的,因此其他人无法访问它们,而您也无法访问它们)
  • 使用SuExec或suPHP(php作为网站所有者运行)
  • 如果您的主机作为模块(1)运行,那么您的文件必须是664和目录755,并且服务器上的每个人都可以读取

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


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

    服务器外没有人,没有。有些关联:+1发布链接,最有用的答案。下载PHP文件并不意味着下载源文件,我认为这是OP所担心的。只有当服务器上存在扩展名为.PHP~的文件时,才会这样做,当nano之类的编辑器留下一个临时文件而没有正常关闭时(例如,失去连接),就会发生这种情况。如果系统管理员使用Subversion来推动代码更改,您可以执行类似的操作,因为它会在所有地方留下.svn目录,其中包含扩展名为“.svn base”的每个文件的副本,因此您通常可以在浏览器中以纯文本形式查看这些文件。