gpt4 book ai didi

php - 保护共享的 lighttpd 设置

转载 作者:行者123 更新时间:2023-12-04 06:50:31 26 4
gpt4 key购买 nike

(是的,我知道有关 lighttpd 的问题更适合 SF,但我认为这里更容易被问到,因为它主要与安全策略有关。)

我们计划在我的大学里建立一个小型网络服务器,这样人们就可以获得一些网络空间来放置网页等。他们还可以上传 PHP 页面。整个设置在 chroot jail 中运行。

我们正在考虑使用相同的基础设施来提供更多服务,例如论坛。 我的问题是 ,将论坛放在同一个文档根目录(或者实际上是同一个 chroot 环境)中,几乎允许任何用户将小的 PHP 脚本放在可以访问论坛配置文件的目录中(例如,使用 file_get_contents )。这是一个巨大的安全风险!有没有办法解决这个问题,除了禁用用户帐户的 PHP,只为讨论论坛等启用它,或者在其他地方提供论坛并使用 lighttpd 代理它?

我怀疑设置所有权/权限是否可以解决此问题,因为在我看来,PHP FastCGI 进程是由 Web 服务器生成的,因此,服务器可以访问的任何页面(它们都必须是,看看它是如何最终必须为它们服务的服务器)可以通过用户上传的 PHP 脚本访问。

任何帮助,将不胜感激!

最佳答案

嗯,有几点。

首先,虽然 Lighttpd 非常适合高性能需求,但它并不是为在共享主机设置中使用而设计的。 Apache 可能是更好的选择,因为它支持 .htaccess 之类的东西。 ...

其次,PHP 不需要以与 Lighttpd 相同的用户身份运行。您可以使用 spawn_fcgi程序以该网站的用户身份启动每个 fastcgi 监听器。您将为每个虚拟主机声明一个 fastcgi 后端。请注意,您可能无法使用任何内置的 vhost 模块(simple_vhost 等)。只需使用正则表达式匹配:

通过 IP 和端口:

$SERVER["socket"] == "127.0.0.2:80" {
fastcgi.server = (
".php" => (
"username" => (
"socket" => "/tmp/user_php.fastcgi",
)
)
)
)

或按主机名:
$HTTP["host"] =~ "example\.com" {
# ...
}

您可能需要修改初始化脚本来执行 spawn_fcgi为每个用户启动 php 进程。

关于php - 保护共享的 lighttpd 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3186056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com