use*_*er6 5 php webserver command-line node.js
我有一个用node.js编写的网络服务器,它几乎只是为用户提供静态文件.为了添加PHP支持,我想我可以下载PHP并给PHP.exe文件.如果单个用户在哪里使用它,那就足够了.对于多个用户将在服务器上托管其网站的环境,它会带来巨大的安全问题.可以使用PHP脚本来执行他/她想要的任何其他网站甚至整个服务器.
哦,我提到它是一个Windows服务器?
无论如何,所以我想要的是获得一些权限,以保持PHP脚本在特定目录中.我正在考虑为我将应用适当权限的每个网站创建用户的方向,而不是使用像'run as'这样的东西执行php.exe(假设它是可能的).我还有其他方法可以实现我的目标吗?如果是这样他们会更好吗?为什么这样?
如果您有兴趣,我的代码如下:http://pastebin.com/gZjN1mnj
另外我知道$ _POST,$ _SERVER,$ _COOKIE,$ _SESSION等在使用我的服务器时都会丢失,但我已经考虑过如何解决这个问题,并对其进行了一次成功的测试.
现在我已经感受到了回答:你为什么要那样做?或者不要,apache/nginx更好,等等.考虑它是一个学习过程,我只是感兴趣,我是否可以得到所有实际工作^^
谢谢.
小智 4
祝贺您开发的混合包弗兰肯平台:)
切换到Linux使用process.setuid
Node.js 是一个很棒的网络服务器,所以我可以看到它的吸引力。通过在 Windows 上运行 Node 和 php,您可以逆流而上。如果你有控制权,我会切换到linux。
如果您在 Linux 中运行,Node 有一个内置函数 process.setguid 和 process.setuid 您必须是 root 才能运行这些函数,但 node.js 程序可以以 root 身份运行,为每个用户生成一个节点进程,然后将其自身监禁并运行将所有流量路由到被限制到特定用户的子节点进程。
每个用户都有一个特定的 php.ini
您可以使用 php 安全模式、base_dir 和其他 ini 命令来尝试将 php 限制到特定的目录树。这是不稳定且不完整的,并且由于错误和解决这些问题的方法,其中许多功能在最新版本中已被弃用或删除。但是通过 php 命令行调用传递 ini 文件很简单。
使用第三方 RUNAS 实用程序
要在 Windows 中真正实现用户安全,您必须运行 autoIT RunAs http://www.autoitscript.com/autoit3/docs/functions/RunAs.htm之类的东西
与普通的 runas 命令相反,这个命令允许您指定一个密码,以便它可以从您的节点进程运行。
归档时间: |
|
查看次数: |
653 次 |
最近记录: |