我想在 NodeJS 上创建一个简单的站点。例如,它有两个文件(app.js - 主应用程序文件)和 router,js(一个 url 文件)。我想知道 - 如果任何人都可以访问 mydomain.com/router.js 来获取我的应用程序的源代码吗?我问'因为例如在 PHP 中你不能只访问 php,因为你知道服务器只是给你这个 PHP 文件的工作结果,而不是文件本身。那么,如何使我的 nodejs-app 对公共访问不可见?谢谢!
问问题
434 次
2 回答
0
这取决于你如何使用 Node.js 以及你在它前面的 Web 服务器使用什么。与作为 CGI 或 Apache 中的模块运行的 PHP 不同,node 和 node 应用程序本身就是一个服务器。如果您的网络服务器暴露了您的节点源目录,那么您在问题中提供的 url 很可能会导致您的源代码被提供。即使您使用 Apache 并代理到节点,通常也不会涉及输出过滤器。相反,请求被传递到解释它们的后端节点服务器。
于 2012-04-07T05:40:49.800 回答
0
我确保 Node.js 的所有文件都不会位于由另一个 Web 服务器(例如 Apache)提供服务的路径中。这样,源被意外送达的危险很小。
我的节点程序和文件放在 /var/nodejs 中,并为 Node 中的每个应用程序创建一个子文件夹。当然,默认情况下,除非您告诉它,否则 Node 不会提供任何服务。
在我的 Apache 配置的根目录中,我确保所有文件夹都是安全的,因此我必须明确地启用在任何文件夹结构上的服务,即使在我用于所有 Apache 站点的 /var/www 文件夹下也是如此。
因此,只要您将文件夹分开,使用默认设置的 Node 和 Apache 就非常安全。此外,Node 不会意外地提供源代码,您必须设置一个 Node 服务器,将文件作为文本读取并将其写入 http 流。
于 2012-04-07T15:13:16.737 回答