gpt4 book ai didi

javascript - 在 Express 中拒绝访问 server.js

转载 作者:行者123 更新时间:2023-11-30 20:15:28 25 4
gpt4 key购买 nike

我目前正在构建一个将在生产环境中使用的应用程序,为此我正在使用 Node & Express。

我担心的是我正在执行的静态文件服务,因为服务器在同一目录 ( dist/ ) 中运行命令 node server.js .

显然有人可以做到 <url>/server.js Express 会很乐意返回文件的全部内容,这当然不利于安全。

我现在已经实现了一项基本检查,应该拒绝对该文件的访问,如下所示:

[...]

function denyServerJSAccess(req, res, next) {
if (req.originalUrl.indexOf('server.js') > -1) {
console.log("Denied access")
return res.sendStatus(403);
} else {
return next();
}
}
app.use(denyServerJSAccess);
app.use(express.static(__dirname + ""));

[...]

但这就足够了吗?

有针对性的攻击是否可以制作一个绕过 indexOf 的 Angular 色? ,但让我们 express 服务文件?如果是的话,那不会有任何好处。

过去我见过很多人们用来绕过基本保护的技巧,我有点担心,因为这可能是一种基本保护。

我应该怎么做才能保护这些文件?

提前致谢。

最佳答案

这里有两件事,第一行

app.use(express.static(__dirname + ""));

将公开目录 server.js 所在的所有内容(这可能是您的根目录)。所以您想将路径限制为

app.use(express.static(__dirname + '/path/to/public/resources'));

其次,将公共(public)资源仅放在path/to/public/resources下。

关于javascript - 在 Express 中拒绝访问 server.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51968602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com