如何保护来自 Flutter Web 应用程序的 API 请求?
How protect API request made from Flutter Web app?
我在 PHP 中为我的 Flutter 网络应用程序开发了一个 API。我正在使用这个 API 来获取所有数据。但是,我可以看到对服务器发出的所有请求。
有没有办法让hide/restrict任何未经授权的人使用我的API?我正在使用 HTTP 库从我的 flutter 应用程序调用 API。我只想隐藏那些对网络的调用 API。我已经看到一些网站这样做了。由于这些网站中的服务器代码和网站代码在同一个目录中,因此无需向网络服务器发出请求即可直接访问。
我看到的两个问题是
- You are able to see all the request made to backend server from your web page and you want to hide them.
答案是不,你不能。我这样说是基于我在 google 中的搜索和 SO 中的一些帖子,例如
您可能会考虑禁用开发人员工具。答案是 No and maybe 副作用未知。
- Is there any way to hide/restrict any unauthorized person to use my API?
这个问题的答案是肯定的,可以通过多种方法来完成。就像您说的,基于令牌的授权有其自身的密钥泄露问题,这就是为什么始终存在与之关联的有效性并应予以考虑的原因。有refresh tokens更新token等机制
我要做的第一件也是最重要的事情是在您的服务器中启用 CORS 机制,服务器将只允许处理来自非常特定域的请求。更多详细信息可用 here
我在 PHP 中为我的 Flutter 网络应用程序开发了一个 API。我正在使用这个 API 来获取所有数据。但是,我可以看到对服务器发出的所有请求。
有没有办法让hide/restrict任何未经授权的人使用我的API?我正在使用 HTTP 库从我的 flutter 应用程序调用 API。我只想隐藏那些对网络的调用 API。我已经看到一些网站这样做了。由于这些网站中的服务器代码和网站代码在同一个目录中,因此无需向网络服务器发出请求即可直接访问。
我看到的两个问题是
- You are able to see all the request made to backend server from your web page and you want to hide them.
答案是不,你不能。我这样说是基于我在 google 中的搜索和 SO 中的一些帖子,例如
您可能会考虑禁用开发人员工具。答案是 No and maybe 副作用未知。
- Is there any way to hide/restrict any unauthorized person to use my API?
这个问题的答案是肯定的,可以通过多种方法来完成。就像您说的,基于令牌的授权有其自身的密钥泄露问题,这就是为什么始终存在与之关联的有效性并应予以考虑的原因。有refresh tokens更新token等机制
我要做的第一件也是最重要的事情是在您的服务器中启用 CORS 机制,服务器将只允许处理来自非常特定域的请求。更多详细信息可用 here