1

不久前我问了这个问题,尽管我提出了几个赏金,但我从来没有得到太多答案(见这里)。更一般地说,我想知道 suPHP 是否有任何安全概念?是什么阻止任何人去

www.example.com/rm-f-r.php

或者

www.example.com/return_some_iamge.php

因为这些脚本是以用户的权限执行的,所以基本上可以保证访问。


编辑为了详细说明上述内容,我的问题是一个概念问题。假设我们有一个文件位于/home/user/test.php. 让这个文件做任何事情(rm -f -r /,获取并返回图片,重新启动计算机......)如果我将浏览器指向该文件(假设包含文件夹是 Apache 下启用的站点)我如何告诉浏览器只让该文件的所有者执行它?


编辑 2:我从未明确说明这一点,因为我认为 suPHP 仅与 apache(即 Web 浏览器)一起使用,但我说的是仅使用浏览器对 linux 用户进行身份验证。如果我们不进行身份验证,那么从技术上讲,任何人都可以访问服务器上的任何脚本(对于网站,这不是问题,因为它们总是将权限设置为0644,所以基本上全世界都可以看到。另一方面,PHP 文件有权限一般设置为0700)

4

1 回答 1

4

suPHP 的效果是 PHP 运行时在创建.php文件的用户的许可下执行。这意味着 PHP 程序作者只能读取和写入他自己拥有或有权访问的文件。

如果您在您的网站上放置一个 PHP 文件,您就可以让访问您网站的任何人公开运行它 -使用 suPHP 不会改变这一点。如果不登录您的网站,所有网络用户实际上都是匿名的,并且无法可靠地识别个人。suPHP 仅控制脚本在执行时将拥有的本地权限,并不打算引入任何形式的 Web 用户身份验证或授权。

如果您希望控制哪些用户可以实际运行脚本,则需要实现一些登录功能并强制用户登录您的站点。然后对敏感的 PHP 脚本(或 Apache 配置)添加一个检查,如果当前登录的 Web 用户不是您希望执行该脚本的用户,它将使其中止请求。

于 2012-03-02T12:27:21.180 回答