【问题标题】:Node JS | Heroku | MongoDB Atlas | How do I make sure only my app can access my backend?节点JS |赫罗库 | MongoDB 地图集 |如何确保只有我的应用可以访问我的后端?
【发布时间】:2019-12-01 17:44:48
【问题描述】:

我使用 MongoDB Atlas、Express 和 Node JS 构建了我的后端,并将其部署到 Heroku。到目前为止,使用 Postman,该应用程序运行正常(正在添加用户并且我正在正确接收 json Web 令牌)。

但我认为这可能不正确,因为似乎任何有权访问我的 Heroku URL 和路由的人都可以轻松创建新用户,接收 json Web 令牌,并基本上使用我的后端操作他们的整个应用程序。

我的问题是:

  1. 我是否错过了有关如何构建后端的重要信息?
  2. 如何保护我的后端,以便只有我的应用程序可以访问后端?

【问题讨论】:

    标签: node.js mongodb express heroku


    【解决方案1】:

    您可以使用Passportjs 保护您的路线,护照将是您访问后端的人和您的实际后端之间的中间人。

    如果通过了有效的 JWT (JWT strategy),您可以授予对路由的访问权限,否则会抛出 401(未授权)。

    有 400 多种策略可用,我会推荐一种 JWT,因为您已经在生成 JWT。

    保护后端是不可或缺的一部分,因为大多数脚本可以禁用前端的安全性,从而使应用程序容易受到攻击。

    【讨论】:

    • 抱歉,我还是编码新手,可能没有理解您的建议。我已经实现了 JWT 以对路由进行身份验证。但是,如果一个随机的人进入 Postman,她仍然可以向注册路由提交用户名和密码并接收 JWT,并在每个路由上通过手动过程提交标头中的 JWT 并重新创建每个请求。所以我想我缺少的是是否有办法说“这是我的应用发出这个请求,而不是使用邮递员的随机人”。
    猜你喜欢
    • 1970-01-01
    • 2022-12-31
    • 2012-07-26
    • 1970-01-01
    • 2019-05-25
    • 2020-08-25
    • 2022-06-30
    • 2022-06-14
    • 1970-01-01
    相关资源
    最近更新 更多