【问题标题】:Security test for writing to remote directory写入远程目录的安全测试
【发布时间】:2010-12-19 10:21:42
【问题描述】:

简短的问题:我如何测试我网站中的目录实际上是否可以在世界其他地方(甚至在我自己的机器之外)写入?

上下文:

我在托管服务提供商实施了一个奇怪的安全系统的地方运行这个网站。为了让 PHP 将文件写入(linux)服务器上的磁盘,目标目录应该对每个人都有写权限。

对我来说,这似乎是一个巨大的安全漏洞(请注意,没有用户上传东西,只有我的 PHP 脚本生成文件),但我的主机告诉我它是安全的,因为他们有其他(未指定)安全措施防止世界访问我的目标目录的地方。我很怀疑,所以我想确保一切安全。

所以,我知道我的目录权限——我已经设置并测试了它们。我知道我的脚本可以写入该目录。现在我想确保我真的是唯一一个可以写入该目录的人,尽管已授予每个人文件权限。

例如:是否有一个 PHP 函数可以写入远程目录,例如fopen('http://domain.tld/foo/evil-hack.php', 'w')?我已经测试了那个,但它不起作用,但这并不能向我证明其他人不会找到其他方法。

【问题讨论】:

    标签: php security unix permissions


    【解决方案1】:

    php 函数 CHMOD 是你的答案:

    http://php.net/manual/en/function.chmod.php

    additionfileperms(); 也应该对您有所帮助。

    【讨论】:

    • 我知道如何从服务器本身测试它。我想知道如何测试从另一台机器(或同一共享主机上的另一个用户)写入该目标目录,以确保尽管授予每个人写入权限,但我的脚本实际上是唯一一个 可以 写信给它,正如我的主人所说的那样。
    • 啊,我明白你想要达到的目标。我很快就会遇到同样的情况,因为我正在为多个用户开发一个 web 应用程序(阅读:不同的客户端,使用不同的数据库)。我认为当您尝试写入不属于您的托管环境的目录时,您无法写入该目录,因为您被锁定在您的主目录中。也许 apache 会“启动”另一个用户来处理对两个不同托管帐户的请求。虽然这只是一个疯狂的猜测,但正如我所提到的,我将在几周内面临同样的情况;)
    猜你喜欢
    • 2017-08-26
    • 1970-01-01
    • 2010-09-28
    • 2015-06-26
    • 2012-09-10
    • 2012-06-07
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多