标签: api-key

如何将代码推送到Github隐藏API密钥?

我想将一些代码推送到我的GitHub存储库.这些代码是在像不同的语言Javascript,Java,Python等某些代码包含了一些私人API,我不想公布关键.

有没有办法自动隐藏它?我应该手动将其从我的代码中删除吗?

我想推动很多项目.因此,手动删除不是一个好选择.

git github api-key

30
推荐指数
4
解决办法
2万
查看次数

通过api键休息api

我正在使用phil sturgeon REST_Controller为codeigniter创建一个REST api,到目前为止我已经能够创建一个简单的库来为用户生成api密钥.我的问题是现在为每个请求发送api密钥到API,如何在不必为每个请求手动发送它的情况下执行此操作.

php rest codeigniter api-key

29
推荐指数
2
解决办法
4万
查看次数

在iOS中,如何存储允许我与服务器通信的秘密"密钥"?

我想存储一个秘密密钥("abc123"),我将在我的REST API请求的标头中使用.我的服务器将检查此密钥.如果它匹配"abc123",则允许发出请求.

我正在考虑一个简单的解决方案,如:

let secret = "abc123" 
Run Code Online (Sandbox Code Playgroud)

但这会有任何挫折吗?

security cryptography api-key secret-key ios

29
推荐指数
2
解决办法
1万
查看次数

在Node.js中使用API​​密钥时的最佳实践

我有一个我在Node.js应用程序中使用的API密钥.目前,我将它保存在一个文本文件中,并在我的应用程序启动时将其放在一个全局变量中.

Sooo基本上只是:

var key = getKey();
useKeyGetData(key);
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个全局变量,在文件之间传递是一件痛苦的事.有没有更好的方法来获取我的钥匙在何时/何时需要它?这样做有一些标准吗?

api-key node.js

27
推荐指数
1
解决办法
2万
查看次数

在react应用程序中使用API​​密钥

我有一个使用两个第三方服务的React应用程序.该应用程序已开始使用react-create-app.

这两项服务都需要API密钥.

一个密钥通过脚本标记提供,如下所示:

<script type="text/javascript" src="https://myapi?key=MY_KEY">
</script>
Run Code Online (Sandbox Code Playgroud)

另一个API密钥用于请求中.我将实际的密钥存储在一个常量中,并使用它来形成请求.像这样:

const MY_OTHER_KEY = 'MY_OTHER_KEY'
let url = `http://myotherapi?key=${MY_OTHER_KEY}&q=${query}`
Run Code Online (Sandbox Code Playgroud)

谷歌处理API密钥的最佳做法提示:

不要直接在代码中嵌入API密钥

这让我想到了第一个问题:

1.如何使用变量index.html

在我的index.html文件中,我有两个看起来像这样的标签:

<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
Run Code Online (Sandbox Code Playgroud)

显然,%PUBLIC_URL%是一个变量.如何添加变量%MY_KEY%以避免直接在我的代码中嵌入API密钥?

得到这样的东西:

<script type="text/javascript" src="https://myapi?key=%MY_KEY%">
</script>
Run Code Online (Sandbox Code Playgroud)

与此问题相关,将API密钥存储在常量中是否安全,就像我一样MY_OTHER_KEY

谷歌还说:

不要将API密钥存储在应用程序源代码树中的文件中

这让我想到了第二个问题:

2. API密钥是否仍然在捆绑中?

说我做谷歌和我说的话

...将它们存储在环境变量或应用程序源树之外的文件中

假设我将密钥存储在外部文件中.我认为,该文件将在某个时刻被读取,并且它的内容要么在包中复制,要么以其他方式引用.最后,密钥是否仍然可以在捆绑中看到,除非可能更难找到?这对此有何帮助?

3.在react应用程序中是否有使用API​​密钥的canonic方法?或者由个人开发人员决定?

自我解释,我正在寻找解决这个问题的反应方式,如果有的话.

谢谢您的帮助!

security frontend api-key reactjs

26
推荐指数
1
解决办法
1万
查看次数

如何在使用JavaScript时保护API密钥?

所以,我正在开发一个仅供我自己使用的小应用程序,也许是一个关于Git的开源项目.我正在使用Envato Marketplaces的API,众所周知,有些操作不需要任何密钥,但同时也有一些需要.

我首先在PHP中为Envato API做了一个很好的API包装器,但后来我决定用JavaScript进行一些实验,所以我用JavaScript开发了相同的包装器.到目前为止,我对公共操作没有任何问题,但我现在必须使用API​​密钥.

我的问题是,如果有一种方法可以保护JavaScript中的API密钥.我不能把它放在纯文本中,因为它可以被看到代码的其他人使用.那么API会保密吗?也许从XHR的JSON文本文件中获取它?

javascript api api-key

25
推荐指数
1
解决办法
2万
查看次数

如何在create-react-app中隐藏API密钥?

我在create-react-app中制作了一个天气应用程序.如何隐藏API密钥以便我可以提交给GitHub?

现在关键是在App.js中:const API_KEY ="123456";

api github api-key reactjs create-react-app

25
推荐指数
6
解决办法
3万
查看次数

MapActivity:以编程方式设置APIKey

我目前在我的应用程序中使用MapActivity.我使用2个API密钥.一个用于调试,一个用于"生产"

我厌倦了在xml布局中更改这些值:

 <view class="com.google.android.maps.MapView" 
        android:id="@+id/myGmap" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="@string/api_key_prod" />
Run Code Online (Sandbox Code Playgroud)

我厌倦了每次尝试更改apikey并且每次都通过调试替换prod.

是否可以在我的应用程序的onCreate()中更改此键.

想象一下,我有一个布尔首选项,如:isDebug.

我可以检查我的手机上的首选项,并默认在用户应用程序上禁用它.做一些像:

 if (isDebug)
     myMap.setApiKey(R.string.api_key_debug)
 else
     myMap.setApiKey(R.string.api_key_prod)
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助.

android google-maps key api-key

21
推荐指数
2
解决办法
9243
查看次数

Android - 只有在<meta-data>重复时才能指定API密钥

我正在尝试将Google地图添加到may app中,所以我已经使用了API密钥.不幸的是,当我通过元数据标签在manifest.xml中插入API密钥时,它会在编译时自动插入另一个元数据标记,如下所示.现在它产生下面提到的错误.最糟糕的情况是,即使我删除它们中的每一个或两者,它也会在编译时自动生成两个标记并抛出错误.

有帮助吗?

错误

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.exampl.t_collect/com.exampl.t_collect.activity.MapActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2389)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2441)
        at android.app.ActivityThread.access$900(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
.........
Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
..........
Caused by: java.lang.RuntimeException: The API key can only be specified once. It is recommended that you use the meta-data tag with the name: com.google.android.geo.API_KEY in the <application> element of AndroidManifest.xml …
Run Code Online (Sandbox Code Playgroud)

android google-maps api-key

18
推荐指数
1
解决办法
9568
查看次数

iOS与谷歌地图

我已使用Google Developers Console将Google Maps SDK与iOS集成.

但是当我现在运行应用程序时,它会给我以下错误.

ClientParametersRequest失败,剩余3次尝试(0 vs 5).

Error Domain=com.google.HTTPStatus Code=400 "The operation couldn’t be completed.(com.google.HTTPStatus error 400.)" UserInfo=0xb83c2a0 {data=<CFData 0xc13d600 [0xe7a4d8]>{length = 145, capacity = 256, bytes = 0x3c48544d4c3e0a3c484541443e0a3c54 ... 3c2f48544d4c3e0a}}
Run Code Online (Sandbox Code Playgroud)

然后它说

Google Maps `SDK` for `iOS` cannot connect or validate APIKey: 
Error Domain=com.google.HTTPStatus Code=400 "The operation couldn’t be completed. 
(com.google.HTTPStatus error 400.)" UserInfo=0x94bf990 {data=<CFData 0x907df90 [0xe7a4d8]>
{length = 145, capacity = 256, bytes = 0x3c48544d4c3e0a3c484541443e0a3c54 ... 3c2f48544d4c3e0a}}
Run Code Online (Sandbox Code Playgroud)

我已经请求了密钥,我使用相同的40个字符密钥.我也尝试重新生成密钥,然后使用它.我在网上搜索过,有人说应该在"服务"中启用"谷歌SDK for iOS".在我的案例中也启用了这一点.

但没有任何作用.有人见过同样的问题吗?

google-maps api-key ios

17
推荐指数
1
解决办法
1万
查看次数