从 flutter 调用 woocommerce API,而无需在移动应用程序中嵌入消费者密钥和密钥

Calling woocommerce API from flutter without embedding consumer key and secret in mobile app

提问人:0penJava 提问时间:11/16/2023 最后编辑:LoicTheAztec0penJava 更新时间:11/18/2023 访问量:33

问:

对于调用 WooCommerce REST API 的移动应用程序,需要使用者密钥和密钥。 但是,将其嵌入到移动应用代码中可能会带来安全风险。有什么办法解决这个问题吗?

试图看看是否有办法安全地存储密钥,但似乎没有

flutter react-native 移动 端 woocommerce-rest-api

评论

0赞 Csisanyi 11/16/2023
pub.dev/packages/flutter_secure_storage不言而喻,如果您仍然需要帮助,请告诉我。

答:

1赞 Ubaid ur Rehman Soomro 11/16/2023 #1

在 flutter 项目的根目录下创建一个文件,将内容放入创建的文件中,如下所示:env.json

{
 "consumer_key":"<YOUR_CONSUMER_KEY>",
}

在您的代码中,像这样访问您的使用者密钥。

const String baseUrl = String.fromEnvironment("base_url");

此构造函数仅保证在作为 const 调用时才能工作。 (有关方法,请参阅文档String.fromEnvironment)

编辑 main.dart 配置,并将其他运行参数设置为:

--dart-define-from-file=env.json

如何编辑运行配置

要构建 APK,请使用:

flutter build apk --dart-define-from-file=env.json

对 appbundle 使用相同的命令行参数。

这将在 Flutter >=3.7 中起作用

您可以轻松地参考社区,以便在 iOS 配置中添加此附加命令行参数。

真正的问题:它安全吗?

我开发了一个带有环境变量的应用程序,但我的渗透测试人员无法在逆向工程中找到密钥。在运行时分配的环境变量,因此它们不是代码的一部分。

评论

0赞 0penJava 11/17/2023
如何为仅具有客户凭据的角色创建consumer_secret?我认为如果仅访问登录用户的客户特征,我们可能会让他们使用 OAuth