标签: api-key

在应用程序中存储和保护私有API密钥的最佳实践

大多数应用开发者会将一些第三方库集成到他们的应用中.如果要访问服务,例如Dropbox或YouTube,或者用于记录崩溃.第三方图书馆和服务的数量是惊人的.大多数这些库和服务都是以某种方式通过服务进行身份验证而集成的,大部分时间都是通过API密钥进行的.出于安全目的,服务通常生成公共和私有(通常也称为秘密密钥).不幸的是,为了连接到服务,必须使用此私钥进行身份验证,因此可能是应用程序的一部分.毋庸置疑,这面临着巨大的安全问题.公共和私人API密钥可以在几分钟内从APK中提取,并且可以轻松实现自动化.

假设我有类似的东西,我该如何保护密钥:

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

}
Run Code Online (Sandbox Code Playgroud)

您认为存储私钥的最佳和最安全的方式是什么?混淆,加密,你怎么看?

android reverse-engineering proguard api-key

342
推荐指数
13
解决办法
12万
查看次数

API密钥和密钥如何工作?

我刚刚开始思考api密钥和密钥是如何工作的.就在2天前,我注册了Amazon S3并安装了S3Fox插件.他们问我的访问密钥和秘密访问密钥,这两个密钥都要求我登录访问.

所以我想知道,如果他们问我的密钥,他们一定要把它存放在某个地方吗?这与询问我的信用卡号码或密码并将其存储在自己的数据库中基本相同吗?

秘密密钥和API密钥如何工作?他们需要有多秘密?这些应用程序是否使用秘密密钥以某种方式存储它?

感谢您的见解.

security passwords amazon-s3 api-key secret-key

134
推荐指数
2
解决办法
8万
查看次数

什么是API密钥?

这些天我几乎在每个跨服务应用程序中都看到了这个词.

API密钥究竟是什么?它的用途是什么?

此外,公钥API和私钥API之间有什么区别.

security api terminology api-key

103
推荐指数
4
解决办法
15万
查看次数

在travis-ci上使用秘密api密钥

我想在我的一个项目中使用travis-ci.

该项目是一个API包装器,因此许多测试依赖于使用秘密API密钥.要在本地测试,我只是将它们存储为环境变量.什么是在Travis上使用这些键的安全方法?

api continuous-integration api-key travis-ci

90
推荐指数
3
解决办法
2万
查看次数

为什么要使用API​​密钥和秘密?

我遇到了许多API,它们为用户提供了API 密钥秘密.但我的问题是:两者之间有什么区别?

在我看来,一把钥匙就足够了.说我有一把钥匙,只有我和服务器知道它.我用这个键创建一个HMAC哈希并进行API调用.在服务器上,我们再次创建HMAC哈希并将其与发送的哈希进行比较.如果相同,则对呼叫进行身份验证.

那为什么要用两把钥匙?

编辑:或者是用于查找API密钥的API密钥?

security authentication api api-key secret-key

77
推荐指数
5
解决办法
3万
查看次数

Google地图如何保护其API密钥?如何制作类似的东西?

目前,Google要求您创建一个特定于将从中提供地图的域的API密钥.Google如何执行此操作?我想做同样的事情.

我为我的服务公开了一个API,但希望允许客户端通过javascript而不是从服务器嵌入对API的调用.我可以用一个随机令牌来保护它,当然,任何看客户端机器上的代码的人都很容易欺骗它.

我总是理解这个概念是不可能的,但不知何故谷歌在执行它方面做得很好.

编辑 - 听起来谷歌毕竟没有做过任何惊人的事情.他们的API最有可能仅用于跟踪,而不是真正保证他们的API由具有密钥的人使用.

security api google-maps web-services api-key

74
推荐指数
2
解决办法
3万
查看次数

将API密钥放在标题或URL中

我正在为我公司的数据设计一个公共API.我们希望应用程序开发人员注册API密钥,以便我们可以监控使用和过度使用.

由于API是REST,我最初的想法是将此密钥放在自定义标头中.这就是我见过谷歌,亚马逊和雅虎的方式.另一方面,我的老板认为,如果密钥只是URL的一部分,那么API更容易使用,等等" http://api.domain.tld/longapikey1234/resource ".我想有一些事情可以说,但它违反了URL的原则作为你想要的简单地址,而不是你想要它的方式或原因.

您是否认为将密钥放在URL中是合乎逻辑的?或者,如果将简单的javascript前端写入某些数据,您是否还不必手动设置HTTP标头?

authentication rest url http api-key

70
推荐指数
3
解决办法
10万
查看次数

生成API密钥的最佳方法

因此,现在有很多不同的服务,谷歌API,Twitter API,Facebook API等.

每个服务都有一个API密钥,如:

AIzaSyClzfrOzB818x55FASHvX4JuGQciR9lv7q

所有密钥的长度和它们包含的字符各不相同,我想知道生成API密钥的最佳方法是什么?

我不是要求特定的语言,只是创建密钥的一般方法,它们是用户应用程序的详细信息加密,哈希,或随机字符串的哈希等等.我们应该担心哈希算法(MSD,SHA1,bcrypt)等?

编辑: 我已经和一些朋友(电子邮件/推特)进行了交谈,他们建议只使用带有短划线的GUID.

这对我来说似乎有些惹人注意,希望能得到更多的想法.

security api-key

64
推荐指数
5
解决办法
4万
查看次数

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
Run Code Online (Sandbox Code Playgroud)

这不起作用,如果我排除api键它也不起作用?

google-maps api-key google-maps-api-3

59
推荐指数
5
解决办法
10万
查看次数

Google Maps API V3中的API密钥是什么?

在旧版本的API中,我必须使用类似的东西将javascript插入到页面中,以便只使用基本功能:

http://maps.google.com/maps?file=api&v=2&key= GoogleMapsAPIKey

我必须为每个站点配置API密钥.看一下文档,它说要获得一个基本的地图,我只需要这个:

http://maps.google.com/maps/api/js?sensor= true/false

API密钥在哪里适用?如果我只是计划使用基本地图和标记而不是更高级的功能,我是否需要担心?

我也在localhost上测试,但常见问题解答说我还需要为它注册一个密钥,我还没有这样做,它仍然有效.

javascript google-maps api-key google-maps-api-3

58
推荐指数
3
解决办法
8万
查看次数