gpt4 book ai didi

php - 使用node.js替换apache/nginx并执行php security

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:39:13 24 4
gpt4 key购买 nike

我有一个用 node.js 编写的网络服务器,它几乎只为用户提供静态文件。要向其添加 PHP 支持,我想我可以只下载 PHP 并将文件提供给 PHP.exe。如果它供单个用户使用,那是可行的并且就足够了。对于多个用户将其网站托管在服务器上的环境,它会带来巨大的安全问题。可以使用 PHP 脚本对任何其他网站甚至整个服务器执行他/她想要的任何操作。

哦,我有没有提到它是一个 Windows 服务器?

无论如何,我想要的是获得一些权限以将 php 脚本保存在特定目录中。我正在考虑为每个网站创建一个用户,我将在该网站上应用适当的权限,而不是在使用“运行方式”之类的东西执行 php.exe 时(假设它是可能的)。我还有其他方法可以实现我的目标吗?如果是这样,他们会更好吗?为什么会这样?

此外,如果您有兴趣,我的代码如下所示:http://pastebin.com/gZjN1mnj

我还知道在使用我的服务器时 $_POST、$_SERVER、$_COOKIE、$_SESSION 等都丢失了,但我已经想到了如何解决这个问题并成功地进行了一次测试。

现在我已经感受到了回应:你到底为什么要这么做?或者不,apache/nginx 更好,等等。将其视为一个学习过程,我只是感兴趣我是否可以将其全部用于实际工作^^

谢谢。

最佳答案

祝贺您在 mixed bag franken 平台上的开发:)

切换到 Linux 使用 process.setuid

Node.js 是一个很棒的网络服务器,所以我可以看到它的吸引力。通过在 Windows 上同时运行 node 和 php,您正在逆流而上。如果你有控制权,我会切换到 linux。

如果您在 Linux 中运行,Node 有一个内置函数 process.setguid 和 process.setuid 您必须是 root 才能运行这些,但是 node.js 程序可以作为 root 运行,为每个用户生成一个 Node 进程,然后jail 本身并将所有流量路由到被监禁给特定用户的子 Node 进程。

为每个用户设置一个特定的 php.ini

您可以使用 php 安全模式、base_dir 和其他 ini 命令来尝试将 php 监禁到特定的目录树。这是片状和不完整的,并且由于存在错误和解决这些问题的方法,其中许多功能已在最新版本中被弃用或删除。但是通过 php 命令行调用传递一个 ini 文件是微不足道的。

使用第三方 RUNAS 实用程序

要在 Windows 中真正拥有用户安全性,您必须运行类似 autoIT RunAs 的程序 http://www.autoitscript.com/autoit3/docs/functions/RunAs.htm

与普通的 runas 命令相反,这个命令允许您指定一个密码,以便它可以从您的 Node 进程运行。

关于php - 使用node.js替换apache/nginx并执行php security,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13230059/

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