繁体   English   中英

使用node.js替换apache / nginx并执行php安全性

[英]Using node.js to replace apache/nginx and execute php security

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

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

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

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

另外我知道$ _POST,$ _SERVER,$ _COOKIE,$ _SESSION等在使用我的服务器时都会丢失,但我已经考虑过如何解决这个问题,并对其进行了一次成功的测试。

现在我已经感受到了回答:为什么你会这样做呢? 或者不要,apache / nginx更好,等等。考虑它是一个学习过程,我只是感兴趣,我是否可以得到所有实际工作^^

谢谢。

恭喜您开发的混合包franken平台:)

切换到Linux使用process.setuid

Node.js是一个很棒的网络服务器,所以我可以看到它的吸引力。 您通过在Windows上运行节点和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命令相反,这个命令允许您指定密码,以便可以从您的节点进程运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM