繁体   English   中英

使用http请求在php旁边使用node.js是否安全?

[英]Is it safe to use node.js next to php using http requests?

我正在使用PHP和mySQL数据库构建一个网站。 该网站现在具有登录/注册功能,可以访问带墙的配置文件。 在同一个网站上,我想使用websockets构建一个大型聊天应用程序。 这个聊天应该容纳一个动态扩展的聊天室(可能会有数千个)中型组(+/- 25人)。

我一直在考虑使用node.js来运行websockets,但我只想使用node.js来处理传入的消息和广播。 另外,我想使用PHP将传入的消息保存在数据库中。 我想在node.js服务器文件中使用http调用来处理这个问题,如http://docs.nodejitsu.com/articles/HTTP/clients/how-to-create-a-HTTP-request中所述 我还想使用http请求来获取用户的属性(例如名称和个人资料图片),因此这些可以显示给同一个聊天室中的其他用户。 我不想处理这个客户端,因为用户可以轻易地假装成其他人。

php网站和node.js服务器都在localhost上运行。 该网站运行在127.0.0.1:80,服务器运行在127.0.0.1:1337。

我的问题是,这种方法可以节省吗? 在node.js服务器上执行http请求以从数据库发送/接收数据时是否存在安全风险? 在PHP网站旁边运行node.js是个好主意,还是应该在node.js上构建我的网站? 还有其他选择吗?

这种方法安全吗?

当然。 我的意思是技术上,当然。 它并不比任何单独的技术更不安全。 但是,它确实使您的架构更复杂,可能会导致更多的人为错误和错误或安全问题。 但这更多是关于人类和复杂性而不是技术本身。

在node.js服务器上执行http请求以从数据库发送/接收数据时是否存在安全风险?

不,不超过任何其他后端技术。 它位于Web服务器后面,运行可能访问或不访问数据库的代码并返回响应。 很多生产网站都在运行node.js而没有任何安全问题。

在PHP网站旁边运行node.js是个好主意,还是应该在node.js上构建我的网站?

这很难回答。 我认为整体上更简单,更易于维护的模式也是将事物放在一个地方和技术上。 但随着应用程序的增长,删除独立部件并以自己最好的方式自行实现它们实际上非常普遍。 通常,这与性能有很大关系,将高流量系统与低流量系统分开,就像技术本身的功能一样。

但是,当您有多个具有不同角色的服务器时,这通常会发挥作用。 对于较小的项目,通常价值较低。


我不知道这是否能回答你的问题,但简而言之:这本身并不坏。 这取决于。

我不认为混合Node.js和PHP / Apache有任何固有的不安全因素。 这就像在计算机上运行多个程序一样,它们有自己的空间,听自己的端口,不直接相互通信。

但我个人会更关心服务器资源(你的CPU有多快?多少内存?)。 在一个平台上构建您的网站肯定会更有效率。 但是根据你正在建设的东西,两者都可以。

从我看到的基准测试中,Node.js比Apache更耗资源。 但Node.js对于某些应用程序来说也非常快。

我同时运行PHP和nodejs进行生产,它的安全性不亚于任何其他CGI后端。 没有人提到的一件事是Nginx还不支持WebSockets,因此如果你想使用websockets同时支持PHP应用程序和nodejs应用程序,那么将Nginx绑定到端口80是行不通的。

请参阅我的答案以获取我的解决方案: nginx vs node-http-proxy

编辑:从版本1.3.13开始,Nginx支持Web套接字。 Nginx现在已经收回了我生产堆栈80端口的合法位置。

暂无
暂无

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

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