【问题标题】:Secure API Call in React JSReact JS 中的安全 API 调用
【发布时间】:2021-03-11 19:03:51
【问题描述】:

我有一个 API,我想从我的前端发出请求,它是使用 React 构建的。但是,我不希望任何人能够在我的代码中看到 API 调用,因为如果有人只是打开检查窗口,那么他们就可以看到 API 调用。我考虑过可能会在请求中添加某种标头作为身份验证发送,但这也不起作用,因为如果您检查站点,您只能看到代码。

我该怎么做?我的 API 返回一个私钥,我不能直接将它存储在我的代码中的变量中。

对不起,如果这个问题没有意义,但我感谢所有帮助。

【问题讨论】:

  • 创建可以调用该 api 并让您的反应应用程序调用服务器的服务器?然后只需使用服务器接口限制您需要的功能。凭据不会以这种方式暴露给前端
  • 可能是 HelloWorld 级别的安全问题,但它是有道理的 :)
  • 您好,感谢您的回复!但是,我对您的意思有点困惑(我是 React 的初学者),并且想知道我将如何实际实现它?对不起,如果这个问题非常基本..

标签: reactjs rest api-security


【解决方案1】:

默认情况下,您的前端代码是不安全且可观察的。前端没有秘密。 如果您的 API 返回的机密数据只能由适当的用户访问,您将必须实施任何类型的身份验证。

然后,例如,用户会提供一个密码来调用 API,或者他之前登录并获得一个令牌(例如 JWT),他会在每次验证请求时发送该令牌。然后每个请求都有一个用户身份,您的后端可以决定是否允许用户获取该私钥。

如果你真的想让别人很难看到你的前端代码,你的路由器可能会提供像“受保护的路由”这样的功能,需要这样的令牌才能访问应用程序的某些路由。仍然可以获取前端代码,因为业务逻辑必须保留在后端。

【讨论】:

  • 谢谢!那么有朝一日会根据返回数据检查调用者的 IP 地址或域吗?
  • 不是安全的方法,IP 可以被欺骗。尝试以正确的方式阅读并了解一种正确的身份验证方式。这将是: - JSONWebTokens 之类的令牌 - Session-Cookies 2 种方法,你需要绕开你的脑袋,但它是值得的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 2022-01-13
  • 2017-07-08
  • 2018-04-11
  • 2015-07-22
  • 1970-01-01
  • 2021-10-16
相关资源
最近更新 更多