使用 expo 库将 API 键存储在 react-native 应用程序中
Storing API Keys in react-native app with expo library
我有一个问题,请尽可能简单地解释一下。我是 React Native 的新手,以安全的方式存储 API 密钥的最佳方式是什么,他们无法对其进行逆向工程并立即获取密钥。我可以仅在用户登录时使用 restapi 从服务器端检索它以获取 apikey 吗?我正在尝试将图片上传到 aws 存储,但我想将 API 密钥存储在至少黑客难以检索的地方。另外,有没有办法通过服务器 express.js 发送图像(从 react native 到 express app)我该怎么做,这样我就可以将它上传到 aws 存储,或者即使可以在 mongodb 而不是 aws 存储。
例如:
const express = require("express");
const requireAuth = require("../middlewares/requireAuth");
const router = express.Router();
router.use(requireAuth); //make sure they are signed in
/**
* * GET: Api key for the amazon s3 bucket storage
*/
router.get("/apikey/amazonstorage", (req, res) => {
const APIKEY = process.env.APIKEY;
if (APIKEY) {
res.status(200).send(APIKEY);
} else {
res.status(502).send(null);
}
});
提前致谢
一般来说,处理 API 密钥最安全的方法是将它们存储在您的后端服务器上,并让服务器向客户端的第三方 API 发出这些请求(并且如有必要,将结果发送回客户端)。
If you must have an API key or a secret to access some resource from your app, the most secure way to handle this would be to build an orchestration layer between your app and the resource. This could be a serverless function (e.g. using AWS Lambda or Google Cloud Functions) which can forward the request with the required API key or secret. Secrets in server side code cannot be accessed by the API consumers the same way secrets in your app code can.
我有一个问题,请尽可能简单地解释一下。我是 React Native 的新手,以安全的方式存储 API 密钥的最佳方式是什么,他们无法对其进行逆向工程并立即获取密钥。我可以仅在用户登录时使用 restapi 从服务器端检索它以获取 apikey 吗?我正在尝试将图片上传到 aws 存储,但我想将 API 密钥存储在至少黑客难以检索的地方。另外,有没有办法通过服务器 express.js 发送图像(从 react native 到 express app)我该怎么做,这样我就可以将它上传到 aws 存储,或者即使可以在 mongodb 而不是 aws 存储。
例如:
const express = require("express");
const requireAuth = require("../middlewares/requireAuth");
const router = express.Router();
router.use(requireAuth); //make sure they are signed in
/**
* * GET: Api key for the amazon s3 bucket storage
*/
router.get("/apikey/amazonstorage", (req, res) => {
const APIKEY = process.env.APIKEY;
if (APIKEY) {
res.status(200).send(APIKEY);
} else {
res.status(502).send(null);
}
});
提前致谢
一般来说,处理 API 密钥最安全的方法是将它们存储在您的后端服务器上,并让服务器向客户端的第三方 API 发出这些请求(并且如有必要,将结果发送回客户端)。
If you must have an API key or a secret to access some resource from your app, the most secure way to handle this would be to build an orchestration layer between your app and the resource. This could be a serverless function (e.g. using AWS Lambda or Google Cloud Functions) which can forward the request with the required API key or secret. Secrets in server side code cannot be accessed by the API consumers the same way secrets in your app code can.