2015-05-26 57 views
0

我开发了WordPress插件WP Google Fonts v3.1.1,它使用Google Fonts API下载第一次使用时从谷歌提供的字体的完整列表,然后不超过每12小时一次,基于访问管理员面板页面。我将API密钥保存在代码中,因为它是一个公钥,Google用它来跟踪和限制使用情况。保留隐藏在WordPress插件中的API密钥

var $api_key = '?key=[the key I am trying to leave out]'; 

    var $api_url = 'https://www.googleapis.com/webfonts/v1/webfonts'; 

我知道,其他人将有机会获得钥匙,并可能在自己的插件的变化重用,但没有预见击中使用限制即使如此。

从那时起,插件变得相当流行,增加了通话的次数。

此外,一些主题开发人员已将API密钥和其他代码片段包括在各自的变体中,从而增加了密钥的使用量。

这导致了频繁的使用限制。超过一半的电话在任何一天被拒绝,由于超龄。

该关键是用于任何域,所以我不能限制推荐来源,因为一些解决方案建议。

因为它是一个WordPress插件,它本质上是开源的,所以任何开发人员都可以快速找到密钥,即使它在配置文件中。

我想让插件尽可能易于使用,所以我不喜欢个人必须获取自己的密钥并将其输入到设置面板的想法。

我的选择是保持API密钥不在源代码中?

我读过的解决方案只是说这个或者是can't be avoided,或者我应该创建一个proxy web service as an intermediate layer,我不确定会解决这种情况。

+0

感谢提醒@ humble.rumble。我已经给出了源代码的链接,并添加了我希望看到的代码段更改。 –

回答

2

你没有选择,你将不得不指导你的用户如何创建自己的API密钥。您无法使用您创建的API密钥发布PHP WordPress插件。

Changes to the Google APIs Terms of Service状态

要求开发人员作出合理的努力,以保持他们的私人 键私下和开源项目不是将其嵌入。

如果在代码中用户可以看到密钥,则必须指示他们如何创建自己的密钥,但不能共享您的密钥。如果您的Google开发者控制台帐户可以撤消。读这个here

+0

谢谢@DalmTo,你的回答有帮助。我会开始考虑通过最佳方式来进行这种改变。 –