【问题标题】:How to protect static files in a single page app with node.js如何使用 node.js 保护单页应用程序中的静态文件
【发布时间】:2013-06-25 09:34:31
【问题描述】:

我计划开发一个包含公共区域和私人区域的网站。该站点的两个区域将是使用 AngularJS 实现的单独的单页应用程序。我使用 Node.js 为前端创建一个 REST Web 服务。

只能通过身份验证(用户名/密码)访问私人区域。调用 REST API 调用也需要身份验证。

公共区域的文件将存储在子文件夹/public中,私人文件夹的文件将存储在子文件夹/private中。我使用 nginx 为公共区域提供静态文件。我还想用 nginx 提供私有区域的静态文件。

如何防止用户直接访问文件,例如 www.example.com/private/js/app.js

只有经过身份验证的用户才能打开 /private 文件夹中的文件。

【问题讨论】:

    标签: node.js authentication nginx single-page-application restriction


    【解决方案1】:

    不幸的是,如果你使用 nginx 来服务器静态私有文件,你将被限制为非常基本的身份验证方法,例如:

    • 基本身份验证:来自包含用户和密码列表的 htpasswd 文件。
    • LDAP 身份验证:形成一个 LDAP 目录(这是一个 3rd 方模块)

    但是,如果您的系统将用户存储在数据库中,则 nginx 不知道如何对用户进行身份验证。此外,如果在你的系统中,认证必须与authorization相结合,即user1只能访问/private/user1/kittenpicture.jpg和user2/private/user2/nakedpics.jpg,nginx也帮不了你,你别无选择但是要从 nodejs 提供您的私有文件(从那时起,您可以将各种身份验证/授权中间件与用于提供静态文件的中间件结合起来。

    【讨论】:

      猜你喜欢
      • 2015-11-11
      • 2020-01-08
      • 2015-08-20
      • 1970-01-01
      • 2016-02-02
      • 1970-01-01
      • 2014-02-15
      • 2018-07-10
      • 1970-01-01
      相关资源
      最近更新 更多