【问题标题】:How prevent a user from accessing a client side html file with express?如何防止用户使用 express 访问客户端 html 文件?
【发布时间】:2016-01-11 20:43:53
【问题描述】:

我正在编写一个“todolist”应用程序。在我的 node.js 代码中,我使用 express 并允许它访问我的名为 Client 的文件夹:

var app = express();

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

在我的 Client 文件夹中如下:

codeJS.js
homepage.html
Todolistpage.html
style.css
logo.jpg

如何防止用户在输入 localhost:3000/Todolistpage.html 时无法查看我的 Todolistpage.html 文件(不删除 Todolistpage.html 来自我的 Client 文件夹)?

(理想情况下,我会尝试只允许登录的用户查看)

【问题讨论】:

    标签: javascript html node.js express


    【解决方案1】:

    如果您不静态提供文件并将其作为视图逻辑的一部分进行处理,这可能会更容易。因此,您只需将其从公共目录中删除并使用app.get()router.get() 中间件单独处理即可。您是否有理由需要静态服务?

    【讨论】:

      【解决方案2】:

      你可以这样做:

      var app = express();
      
      app.get('/Todolistpage.html, function(req, res) {
        return res.status(401).end();
      });
      
      app.use(express.static(__dirname + '/Client');
      

      这并不理想,因为您必须随时更改文件名,并且必须为每个文件单独更改。

      您还可以有一个不同的目录/secure 和一些用于用户身份验证的中间件,例如:

      app.use('/secure', someAuth, express.static(__dirname + '/secure'));
      

      甚至……

      app.use('/secure', someAuth, express.static(__dirname + '/Client/secure'));
      

      但这让我感到困惑。

      【讨论】:

        猜你喜欢
        • 2015-11-22
        • 1970-01-01
        • 2022-01-01
        • 2020-09-23
        • 1970-01-01
        • 2020-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多