黑客(或其他人)是否能够将一个php文件上传/写入到我网站上的一个chmod为777的文件夹中?
例如:
我有一个chmod为777的文件夹,里面包含图片。 我使用.htaccess文件阻止该文件夹的索引。
改写后的问题是: 是否有可能通过在其网站上使用PHP脚本来向我的chmod为777的文件夹中写入.php文件?例如,列出该文件夹中的所有图片
(我熟悉上传文件夹的正确chmod设置等,只是假设性地提问。)
黑客(或其他人)是否能够将一个php文件上传/写入到我网站上的一个chmod为777的文件夹中?
例如:
我有一个chmod为777的文件夹,里面包含图片。 我使用.htaccess文件阻止该文件夹的索引。
改写后的问题是: 是否有可能通过在其网站上使用PHP脚本来向我的chmod为777的文件夹中写入.php文件?例如,列出该文件夹中的所有图片
(我熟悉上传文件夹的正确chmod设置等,只是假设性地提问。)
access.log
,error.log
和与数据库服务器通信。任何额外权限都会使一个原本良性的脚本中的漏洞变得容易被利用,从而允许您的网站被用于攻击他人。
777
是个坏主意。解决它。确保您的Web服务器无权写入任何Web内容。确保服务器上没有其他服务对您的Web内容具有写权限。确保服务器上没有其他用户对您的Web内容具有写权限。
更新
这比听起来要简单。创建一个新的webcontent
用户。如果您的Web服务器已经拥有自己的组,请使用它并称其为webgroup
。如果还没有,请创建一个新的webgroup
。(如果您的VPS没有自己的机制,则使用adduser(8)
和addgroup(8)
。)然后将所有Web内容的所有者设置为:chown -R webcontent:webgroup /path/to/web/content
修复权限:
find /path/to/web/content -type d -print0 | xargs -0 chmod 750
find /path/to/web/content -type f -print0 | xargs -0 chmod 640
然后确保您的Web服务器使用Group webgroup
指令,以确保它仍然可以读取所有所需的文件。
这将使您的Web服务器对所有脚本和配置具有读取访问权限,但如果Web服务器本身被黑客攻击,则无法修改其中任何内容。
有(至少)三种方法可以写入您的目录:
PUT
HTTP方法只要您不以可写的方式公开暴露目录,没有人可以远程修改目录的内容。这与本地权限无关。您设置的本地权限允许服务器的任何本地用户在此文件夹中读取、写入和执行 - 但这并不意味着远程攻击者可以这样做。
话虽如此,请避免使用777
权限,除非绝对必要/安全。