我不久前问过这个问题,尽管我提供了一些赏金,但我从未得到太多答案(请参阅here https://stackoverflow.com/questions/8032140/implementing-log-in-alongside-suphp)。更一般地说,我想知道suPHP是否有安全概念?有什么可以阻止任何人去
www.example.com/rm-f-r.php
or
www.example.com/return_some_iamge.php
因为这些脚本是使用用户的权限执行的,所以它本质上被授予了访问权限。
EDIT为了详细说明上述问题,我的问题是一个概念性的问题。假设我们有一个文件位于/home/user/test.php
。让这个文件做任何事情(rm -f -r /
,获取并返回图片,重新启动计算机...)如果我将浏览器指向该文件(假设包含的文件夹是 Apache 下启用的站点),我如何告诉浏览器只让该文件的所有者执行它?
EDIT 2:我从未明确指出这一点,因为我假设 suPHP 仅与 apache(即 Web 浏览器)一起使用,但我正在谈论仅使用浏览器对 Linux 用户进行身份验证。如果我们不进行身份验证,那么从技术上讲,任何人都可以访问服务器上的任何脚本(对于网站,这不是问题,因为他们始终将权限设置为0644
,所以基本上全世界都可以看到。另一方面,PHP 文件的权限通常设置为0700
)
suPHP 的作用是 PHP 运行时在编写该文件的用户的许可下执行.php
文件。这意味着 PHP 程序作者只能读取和写入他自己拥有或有权访问的文件。
如果您将 PHP 文件放在您的网站上,您就可以让访问您网站的任何人公开运行该文件 -使用 suPHP 不会改变这一点。如果不登录您的网站,所有网络用户实际上都是匿名的,并且无法可靠地识别个人身份。 suPHP 仅控制脚本执行时所拥有的本地权限,它并不打算引入任何形式的 Web 用户身份验证或授权。
如果您希望控制哪些用户可以实际运行脚本,您需要实现一些登录功能并强制用户登录您的站点。然后添加对敏感 PHP 脚本(或 Apache 配置)的检查,如果当前登录的 Web 用户不是您希望执行该脚本的用户,这将使其中止请求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)