当前位置: 首页 > 面试题库 >

如何防止Node.js / Express提供我的应用程序的源代码?

岳浩
2023-03-14
问题内容

我从没想过这会是Node.js和Express的问题,但是我一时发疯,我决定在浏览器中输入Node.js Express项目中一个源文件的位置-类似于:

http://www.mywebsite.com/mynodejsapp/app.js

令我 极为震惊的是 ,我的应用程序的源代码突然弹出,可供所有人查看。

因此,除了:我如何在Node.js / Express中停止它?

我的设置代码非常简单:

var app = express();
app.configure(function() {
    app.use(express.static('/home/prod/server/app/public'));
});
app.listen(8888);

为了澄清,这是我的文件夹结构:

/home/prod/server/
/home/prod/server/app.js
/home/prod/server/public/

旨在
供公众访问的各种文件/public。我所有的服务器源代码都位于之下/server/,并且我对Express的静态文件夹配置的理解是,静态文件夹是Express能够愉快地为文件系统中的文件提供服务的唯一位置。

有任何想法吗?


问题答案:

从您发布的内容来看,它确实闻起来像输入的URL由Apache / nginx /
…提供,并且您确实将节点应用程序放置在文档根目录中。在这种情况(以及任何类似情况)下,答案很简单:

绝不
会将任何源代码文件放在文档根目录或另一个HTTP可访问文件夹中。在您的情况下,/home/prod/server/app/public应仅包含客户端内容(HTML,CSS,图形,(最小化的)客户端JS),并且nginx在此文件夹上方不应作为文档根目录。



 类似资料:
  • 即使在谷歌搜索了几个小时后,我也无法找出确切的问题。我已经检查了StackOverflow本身的几个答案,但未能找出问题所在。 错误跟踪如下: 主要活动代码: 更新1:我已经做了答案中建议的所有更改,但每当我单击MainActivity中的“跳过指令”按钮时,我的应用程序仍然崩溃。此外,当我从AdminLogin活动中单击“登录”按钮时,应用程序崩溃。我该怎么办? Update2:我提到了什么是N

  • 在android上使用Microsoft teams应用程序时,我决定使用系统内置的屏幕录制应用程序来录制讲座。 屏幕记录应用程序表示有另一个屏幕记录应用程序正在运行(见下面的屏幕截图)。我关闭了团队,重新开始了我的屏幕录制,它起作用了!!。 null 截图 编辑:我已经检查了与此问题类似的其他问题,但都是关于在应用程序代码中使用安全标志的。很明显,我想阻止任何从Google Play下载的应用程

  • 我们有一个适用于Android的单一代码库 截至目前,Flutter SDK不支持某些库/插件。 为了缓解这些问题,我们维护了两个单独的存储库,一个用于 Android-iOS,另一个用于 Web。 另外,在这里加起来,对于单独的存储库,因为每个Flutter产品都有一个唯一文件。现在有一些插件目前在App中受支持,但在Flutter Web上尚未支持,即Awesome Notifications

  • 本文向大家介绍如何防止他人窃取我的源代码或图片?相关面试题,主要包含被问及如何防止他人窃取我的源代码或图片?时的应答技巧和注意事项,需要的朋友参考一下 已经加载到客户端的资源,感觉基本上没有办法完全让用户下载不下来。只不过可以对资源进行一些处理,让用户下载的资源不那么好用。比如js加密,图片用base64或css sprint等方式,使得资源即使要用也要费一番精力

  • 问题内容: 我刚刚在我的express应用程序中添加了shouldjs和mocha进行测试,但是我想知道如何测试我的应用程序。我想这样做: 当然,测试套件中的最后一个测试只是告诉med,res.render函数(在show_create_user_screen中调用)是未定义的,可能是因为服务器未运行且配置尚未完成。所以我想知道其他人如何设置他们的测试? 问题答案: 好的,虽然测试路由代码是您可能

  • 我开发了一个多月的Android应用程序,但我的电脑死机了,我丢失了所有的代码。我在测试手机和平板电脑上安装了一个经过编译的应用程序。有没有办法从中提取源代码 我遵循了一些游戏模仿者指南(他们可能正在做类似的事情),我已经提取了。apk和一个名为Total Commander的应用程序。现在,指南说明我应该使用apktool提取它。但所有文件仍然是二进制的(当我打开它们时,我得到了随机字符)。现在