过去,我使用 Google 可用的 api 工具过期,例如 Drive 和 Youtube api。
它的工作方式是在您购买开发者帐户后,您将通过 api 获得许多 Google 服务,为了使用这些服务,您需要一个与您的帐户相关联并附加到每个请求 url 的 uniuqe api 密钥.
例如:
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=some.playlist.id&key={YOUR_API_KEY}
一开始我认为使用 key -> account 绑定是一个聪明的主意,例如,如果 api 密钥绕过 tos,Google 可以简单地禁止该帐户。
但后来我发现使用 MITM 工具(如 Mitmproxy)很容易对 Android/iOS 应用程序中的授权密钥进行逆向工程。使用这种方法,我设法找到了Youtube 官方应用程序 api key,以及许多其他使用这些服务的应用程序,所以我的问题是,谷歌不是这样使用自动化密钥的吗?因为应用程序仍然可以使用其服务保持匿名,甚至可以伪装成其他帐户!.
构建将接收帐户密钥并使用它在本地为每个请求生成一次性密钥的 sdk 不是更好的主意吗?当然,这也可以进行逆向工程,但难度会大得多……