javascript - 如何使用 Rails API 管理我的 react 应用程序中的安全性?

标签 javascript reactjs security jwt rails-api

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

4年前关闭。




Improve this question




我整天都在寻找一些答案,但找不到任何对我有帮助的东西。

我目前正在开发一个用 React 和 Rails API 开发的平台。我的 Rails API 使用设计 token 来处理安全和身份验证 (https://github.com/lynndylanhurley/devise_token_auth)。
我没有使用 React-Redux。

React 前端有公共(public)页面(例如登录)和私有(private)页面,其中需要登录(有效的访问 token )。

我将访问 token 、uid 和客户端存储在 session 存储中(这 3 个参数来自登录响应),并且访问 token 在每个请求的 header 中发送。

这就是我的想法:

  • 用户登录后,将响应存储在 session 存储中以及 javascript 对象中。除非用户刷新页面或关闭并重新打开它,否则该对象将在那里。
  • 每次用户导航到私有(private)页面时,在 react 路由器返回组件之前,我都会检查我的 LoggedInUser javascript 对象是否有东西。如果它没有任何内容,我将使用 session 存储内容调用“validate_token”端点,因为这意味着它是一个返回用户。如果有效,请将其保存在名为“LoggedInUser”的 javascript 对象中。如果不是,请重定向到登录页面。
  • 如果我的 LoggedInUser 对象或 session 存储中没有任何内容,我将重定向到登录。

  • 我的问题是:
  • 如果我们总是在谈论 javascript 变量和 ajax 调用(客户端),我怎样才能使我的私有(private)页面安全?未经授权的用户可以调试我的 javascript 文件,在“LoggedInUser”对象中创建内容,并查看我的私有(private)页面。此人将看不到任何内容,因为所有带有无效 token 的请求都将返回 401,但他们仍然可以看到我的 HTML 或静态文件,以及对 API 的现有请求。

  • 非常感谢你!

    最佳答案

    How can I make my private pages secure



    如果所有都捆绑到您的 pkg 中,则不能。但是,您可以提供模板,并仅为授权用户从服务器加载数据。

    另外一个选择:

    在服务器上托管您的私有(private)应用程序,并仅将其提供给允许的用户。 Webpack 允许您在需要时加载特定模块(延迟加载)。我相信,通过这种技术,您可以防止为未经授权的用户提供某些模块。

    但是逻辑必须在服务器端完成:

    https://webpack.js.org/guides/lazy-load-react/

    关于javascript - 如何使用 Rails API 管理我的 react 应用程序中的安全性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44687266/

    相关文章:

    javascript - console.log 是原子的吗?

    javascript - react : Use this. props.children 或将组件作为命名 Prop 传递

    linux - 在 Linux 中通过网页进行一些管理工作的最佳方法(安全性)?

    javascript - 内部 REST API 安全性

    security - 内存安全和保障 - 沙箱任意程序?

    javascript - Mean js - 实时显示更新

    javascript - 比较两个数组,无法让它返回 true

    javascript - 检测方向和改变类

    javascript - 后台处理程序无法正常工作 - React Native

    reactjs - 使用 React Native Web 时如何能够选择文件?