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

标签 security node.js express

我从没想过这会是 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 愉快地从文件系统中提供文件的唯一位置。

有什么想法吗?

最佳答案

从您发布的内容来看,您输入的网址确实闻起来像是由例如服务提供的。 Apache/nginx/... 并且您确实将您的 Node 应用程序放在了文档根目录中。在这个(以及任何类似的)案例中,答案很简单:

从不将任何源代码文件放在文档根目录或其他 HTTP 可访问的文件夹中。在您的情况下, /home/prod/server/app/public 应该只包含客户端的东西(HTML、CSS、图形、(缩小的)客户端 JS),而 nginx 不应该有任何上述内容此文件夹作为其文档根目录。

关于security - 如何防止 Node.js/Express 提供我的应用程序的源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13849703/

相关文章:

javascript - Onsen UI 破坏了我的 PayPal 脚本(以及所有其他 javascript)

node.js - 在 expressjs 中更改 res.redirect 上的 url

vb.net - 应用激活

c++ - 如何用C++签署XML文档或验证XML文档签名?

javascript - 如何检查对象是否已被修改

javascript - 使用数据库查询作为 promise

javascript - Angular/Node CORS 问题

node.js - 如何拦截 Express.js 中的多部分文件流?

javascript - 如何将 Perfidies(浏览器插件漏洞扫描程序)集成到我的网站中?

php - 我可以将 .user.ini 文件放在 PHP 文档根目录之外吗?