人们可以将.php文件写入我的chmod 777文件夹

Sam*_*ghs 15 php security

黑客(或其他)是否有可能将php文件上传/写入我的网站上有chmod 777的文件夹?

例:

我有一个文件夹,其中包含chmod 777.该文件夹包含图像.我使用.htaccess来阻止索引文件夹.

改革的问题:人们可以通过在他们的网站上使用PHP脚本将.php文件写入我的chmod 777文件夹吗?例如,列出该文件夹中的所有图像

(我熟悉正确的chmod用于上传文件夹等..,只是问它hypotheticaly)

sar*_*old 16

机器的任何合法用户都可以将.php文件或他们想要的任何东西写入该开放目录,这是非常好的.一个777目录下有一个共享的主机上几乎没有什么地方.(/tmp有时可能是1777,在目录上设置粘滞位 - 只允许文件所有者删除目录中的文件.通常,777意味着任何人都可以从目录中删除任何文件.但/tmp绝对不会偏向共享托管环境,因为它本质上是不安全的.)

那么:你是机器上唯一的用户吗?或者这台机器是否与其他人共享?除了网络服务器,这台机器还运行其他任何服务吗 如果是这样,那些其他服务也可能代表可能的攻击向量.

此外,如果您的权限设置777在您的目录中,我想知道您正在运行的PHP文件有多安全 - 我见过很多人运行不安全的PHP脚本,允许攻击者修改整个HTML文件网络服务器,感染浏览网站的人.(是的.很多.很多都是屈指可数.)

这就是为什么您的Web服务器运行的任何用户帐户都不应该拥有该网站的任何文件 - 静态页面和动态页面.Web服务器应该只够写权限写的access.log,error.log以及与数据库服务器交谈.除此之外的任何其他特权使得您的一个脚本中的其他良性错误变得易于利用,从而使您的站点可用于攻击他人.

777是个坏主意.修复它.确保您的Web服务器没有任何Web内容的写入权限.确保服务器上没有其他服务对您的Web内容具有写入权限.确保服务器上没有其他用户对您的Web内容具有写入权限.

更新

这比听起来容易.创建一个新webcontent用户.如果您的Web服务器已经拥有自己的一组,请使用它并调用它webgroup.如果还没有,也创建一个新的webgroup.(adduser(8)addgroup(8)如果你的VPS没有自己的机制.)然后设置所有者为您的所有网页内容:

chown -R webcontent:webgroup /path/to/web/content
Run Code Online (Sandbox Code Playgroud)

修复权限:

find /path/to/web/content -type d -print0 | xargs -0 chmod 750
find /path/to/web/content -type f -print0 | xargs -0 chmod 640
Run Code Online (Sandbox Code Playgroud)

然后确保您的Web服务器正在使用该Group webgroup指令,以确保它仍然可以读取它需要的所有文件.

这将使您的Web服务器具有对所有脚本和配置的读取权限,但如果Web服务器本身被黑客攻击,则无法修改任何脚本和配置.


Dav*_*dom 12

有(至少)三种方式可以写入您的目录:

  • 如果他们对服务器有本地控制权(例如通过终端)
  • 如果您的Web服务器支持并允许PUTHTTP方法
  • 如果您有一个允许人们将文件上传到该目录的脚本

只要您不以可写方式公开公开文件夹,任何人都无法远程修改文件夹的内容.这与本地权限无关.您设置的本地权限允许服务器的任何本地用户在此文件夹中进行读取,写入和执行 - 但这并不意味着远程攻击者可以.

话虽如此,777除非绝对必要/安全,否则请避免权限.


Lek*_*eyn 7

如果您的代码位于共享服务器或其上具有其他服务的服务器上,则其他本地用户可以写入您的目录(如果其他用户能够下载到父目录中).

您需要的不仅仅是每个人都可读写的目录(777),以便被黑客攻击.使用权限777通常表示对安全功能的不良理解(或者当需要重新分发代码时懒惰,并且作者不希望通过向脚本用户解释文件权限而使其变得太难).