Questions tagged «api-key»

应用程序编程接口密钥(API密钥)是计算机程序通过调用API(应用程序编程接口)传递的代码,以标识该调用程序,其开发者或网站的用户。

14
在应用程序中存储和保护私有API密钥的最佳实践
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 9个月前关闭。 大多数应用程序开发人员会将一些第三方库集成到他们的应用程序中。如果要访问服务(例如Dropbox或YouTube)或记录崩溃。第三方库和服务的数量惊人。大多数这些库和服务通过某种方式与服务进行身份验证来集成,大多数情况下,这是通过API密钥进行的。为了安全起见,服务通常会生成一个公共和私有密钥,通常也称为秘密密钥。不幸的是,为了连接到服务,必须使用此私钥进行身份验证,因此可能是应用程序的一部分。不用说,这面临着巨大的安全问题。可以在几分钟内从APK中提取公共和私有API密钥,并且可以轻松实现自动化。 假设我有类似的东西,我该如何保护密钥: public class DropboxService { private final static String APP_KEY = "jk433g34hg3"; private final static String APP_SECRET = "987dwdqwdqw90"; private final static AccessType ACCESS_TYPE = AccessType.DROPBOX; // SOME MORE CODE HERE } 您认为存储私钥的最佳和最安全的方法是什么?混淆,加密,您怎么看?

3
API密钥和秘密密钥如何工作?如果必须将我的API和密钥传递给另一个应用程序,这是否安全?
我只是开始考虑api密钥和秘密密钥是如何工作的。就在两天前,我注册了Amazon S3并安装了S3Fox插件。他们要求我提供我的访问密钥和秘密访问密钥,这两个都要求我登录才能访问。 所以我想知道,如果他们要我提供我的秘密密钥,他们一定会将它存储在正确的位置吗?问我输入信用卡号或密码并将其存储在他们自己的数据库中,这基本上不是同一件事吗? 秘密密钥和api密钥应该如何工作?他们需要成为什么秘密?这些使用秘密密钥的应用程序是否以某种方式存储了密钥?

6
什么是API密钥?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 改善这个问题 这些天来,我几乎在每个交叉服务应用程序中都看到这个词。 API密钥到底是什么?其用途是什么? 同样,公共和私有API密钥之间有什么区别。

5
为什么要使用API​​密钥和机密?
我遇到了许多API,这些API为用户提供了API密钥和秘密。但是我的问题是:两者之间有什么区别? 在我眼中,一把钥匙就足够了。说我有一把钥匙,只有我和服务器知道。我使用此密钥创建HMAC哈希并进行API调用。在服务器上,我们再次创建HMAC哈希并将其与发送的哈希进行比较。如果相同,则对呼叫进行身份验证。 那么为什么要使用两个键呢? 编辑:还是该API密钥用于查找API机密?


9
适用于Localhost的Googlemaps API密钥
如何获取googlemaps api密钥以在localhost上工作? 我创建了一个API密钥,并在引用下添加了以下内容: Accept requests from these HTTP referrers (websites) (Optional) Use asterisks for wildcards. If you leave this blank, requests will be accepted from any referrer. Be sure to add referrers before using this key in production. localhost 这不起作用,如果我排除了api键,它也不起作用吗?

5
生成API密钥的最佳方法
因此,现在有许多不同的服务,例如Google API,Twitter API,Facebook API等。 每个服务都有一个API密钥,例如: AIzaSyClzfrOzB818x55FASHvX4JuGQciR9lv7q 所有密钥的长度和包含的字符都不同,我想知道生成API密钥的最佳方法是什么? 我不是在要求特定的语言,而只是在创建密钥的一般方法,是否应该加密用户应用程序的详细信息,散列或随机字符串的散列等。我们是否应该担心散列算法(MSD,SHA1,bcrypt)等? 编辑: 我已经和几个朋友(电子邮件/推特)进行了交流,他们建议只使用带有破折号的GUID。 不过,这对我来说似乎有点不客气,希望能得到更多的想法。
89 security  api-key 

8
将.env文件添加到React Project
我试图在提交到github时隐藏我的API密钥,并且我在论坛中浏览了相关指南,尤其是以下文章: 如何在create-react-app中隐藏API密钥? 我进行了更改,然后重新开始了纱线。我不确定自己在做什么错–我.env在项目的根目录(我将其命名为process.env)中添加了一个文件,并在我刚刚放入的文件中添加了一个文件REACT_APP_API_KEY = 'my-secret-api-key'。 我认为这可能是fetch在App.js中向我添加密钥的方式,并且我尝试了多种格式,包括不使用模板文字,但是我的项目仍然无法编译。 任何帮助深表感谢。 performSearch = (query = 'germany') => { fetch(`https://api.unsplash.com/search/photos?query=${query}&client_id=${REACT_APP_API_KEY}`) .then(response => response.json()) .then(responseData => { this.setState({ results: responseData.results, loading: false }); }) .catch(error => { console.log('Error fetching and parsing data', error); }); } 运行代码段隐藏结果展开摘要

2
如何安全使用Google API密钥
因此,我正在执行的第一个项目上使用Google Maps API。是的,我是新手,如果这是基础知识或显而易见的事情,对不起,但我找不到明确的答案或方向。以下是我从Google找到的有关安全使用API​​密钥的文档。 安全使用API​​密钥的最佳做法 在应用程序中使用API​​密钥时,请注意确保其安全。公开公开您的凭据可能会导致您的帐户遭到盗用,这可能会导致您的帐户产生意外费用。为了确保您的API密钥安全,请遵循以下最佳做法: 不要将API密钥直接嵌入代码中:嵌入在代码中的API密钥可能会意外地向公众公开-例如,如果您忘记从共享代码中删除密钥。不要将API密钥嵌入到应用程序中,而是将它们存储在环境变量或应用程序源代码树之外的文件中。不要将API密钥存储在应用程序源树中的文件中:如果将API密钥存储在文件中,请将文件保留在应用程序源树之外,以帮助确保密钥不会最终出现在源代码控制系统中。如果您使用公共源代码管理系统(例如GitHub),则这一点尤其重要。限制您的API密钥仅由需要IP地址,引荐来源网址的网址和移动应用使用:通过限制IP地址,引荐来源网址,以及可以使用每个密钥的移动应用程序,则可以减少泄露的API密钥的影响。您可以通过打开“凭据”页面,然后使用所需的设置创建新的API密钥,或编辑API密钥的设置,来指定可从控制台使用每个密钥的主机和应用程序。删除不需要的API密钥:为了最大程度地减少遭受攻击的风险,请删除不再需要的所有API密钥。定期重新生成API密钥:通过单击每个密钥的“重新生成密钥”,可以从Cloud Platform控制台凭据页面重新生成API密钥。然后,更新您的应用程序以使用新生成的密钥。生成替换密钥后,您的旧密钥将继续工作24小时。在公开发布代码之前,请先对其进行检查: 现在我的问题是,如果不直接将其放入代码中,我将无法弄清楚如何将Google Map整合到我的网站中。现在,我的API像这样在我的index.html中: <script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"> </script> 但这再次直接在我的代码中供全世界使用,我认为这是错误的方式。

5
将API密钥放在标题或URL中
我正在为公司的数据设计一个公共API。我们希望应用程序开发人员注册API密钥,以便我们可以监视使用情况和过度使用情况。 由于该API是REST,因此我最初的想法是将该密钥放在自定义标头中。这就是我看到Google,Amazon和Yahoo做到这一点的方式。另一方面,我的老板认为,如果密钥仅成为URL的一部分等,则该API更易于使用。“ http://api.domain.tld/longapikey1234/resource ”。我想对此有话要说,但是它违反了URL的原理,URL是您想要的简单地址,而不是您想要的方式或原因。 您觉得将密钥放入URL是否合乎逻辑?或者,如果将简单的JavaScript前端写入某些数据,您是否不必手动设置HTTP标头?

5
Google Maps如何保护其API密钥?如何做类似的事情?
当前,Google要求您创建一个API密钥,该API密钥特定于将要从中提供地图的域。Google如何执行?我想做同样的事情。 我公开了用于我的服务的API,但希望允许客户端通过javascript而不是仅从服务器嵌入对API的调用。我可以用一个随机令牌来保护它,但是任何在客户端计算机上查看代码的人都可以轻易地欺骗它。 我一直都认为这个概念是不可能的,但是Google会以某种方式很好地执行它。 编辑-听起来Google确实还没有做任何令人惊奇的事情。他们的API很可能仅用于跟踪,而不能真正保证拥有钥匙的人使用他们的API。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.