【问题标题】:How protect API request made from Flutter Web app?如何保护 Flutter Web 应用发出的 API 请求?
【发布时间】:2020-09-17 15:01:20
【问题描述】:

我有一个用 PHP 为我的 Flutter Web 应用程序开发的 API。我正在使用这个 API 来获取所有数据。但是,我可以看到向服务器发出的所有请求。

有什么方法可以隐藏/限制任何未经授权的人使用我的 API?我正在使用 HTTP 库从我的颤振应用程序调用 API。我只想隐藏那些对 Web API 的调用。我见过一些网站这样做。由于这些网站中的服务器代码和网站代码在同一目录中,因此可以直接访问,而无需向网络服务器发出请求。

【问题讨论】:

  • 通常后端/API应该有一些授权机制?您的 API 是否支持 oauth?
  • 不,它没有 OAuth。但是,即使我使用 OAuth,任何拥有令牌的人都可以向我的服务器发出请求,对吗?我希望 API 接受来自我的网站的请求。
  • @mabujaber,我在每个请求中都发送了一个密钥,但由于所有请求都可以从 Chrome 检查工具中轻松看到,我可以从那里看到加密的密钥。

标签: php rest flutter flutter-web


【解决方案1】:

我看到的两个问题是

  1. 您可以看到从您的网页向后端服务器发出的所有请求,并且您想隐藏它们。

这个问题的答案是不,你不能。我这样说是基于我在谷歌的搜索和 SO 中的一些帖子,例如this

您可能会考虑禁用开发人员工具。答案是Nomaybe,副作用未知。

  1. 有什么方法可以隐藏/限制任何未经授权的人使用我的 API?

这个问题的答案是肯定的,并且可以通过多种方法来完成。就像您说的那样,基于令牌的授权有其自身的密钥泄露问题,这就是为什么始终存在与之相关的有效性并且应该考虑的原因。有刷新令牌更新令牌等机制。

我要做的第一件事是在您的服务器中启用 CORS 机制,服务器将只允许处理来自非常特定域的请求。更多详情here

【讨论】:

    猜你喜欢
    • 2013-08-08
    • 2017-01-22
    • 2020-01-14
    • 2019-10-02
    • 1970-01-01
    • 2018-06-04
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多