我正在使用的iPhone应用程序需要GET调用第三方网站的api。 3D部分网站不提供SSL,并要求API密钥位于GET请求的查询字符串中。确保这一点的最佳方式是什么?我知道我可以让iPhone应用程序与我的服务器通话,然后我的服务器发送请求,但是我希望尽可能避免这种情况。另一个问题是如果这甚至是一个大问题。无论如何,如果它只提取数据,他们如何处理API密钥?从第三方隐藏API密钥?
0
A
回答
0
那天我问了一个similar question关于Google Maps API密钥。
我的想法是值得担心使用我的呼叫津贴的人。
我们的共识是,API旨在用于这种方式,并且您可以做的事情不多。
如果您的API需要您的域名作为带API密钥(Google Maps)的引荐标头,那么我提供了一定程度的威慑力。
2
3D零件网站不提供SSL 和需要API密钥是在得到 请求的查询字符串。
没有办法确保这一点。获取请求必须通过互联网发送,在那里可以看到,并且 - 因为您没有使用SSL - 所提取的API密钥。
您需要计算出的API密钥是。如果API密钥旨在识别您的应用程序,那么这种行为很好,您不必担心。如果它旨在识别您或您的计算机,那么这不是一种理智的事情;您需要联系第三方网站并制定安排,您可以为您的用户生成密钥或避免此要求。
4
事实上,无法保护它,仅仅是因为有人可以在设备和Web服务端点之间安装数据包侦听器,并只查看字节流。如果你的通讯频道没有加密,你就会敬酒。
解决方法是创建您的OWN代理服务器;该服务器将使用您的API密钥与终端服务进行通信。然后设备会与您的服务器通话(如果您愿意,您甚至可以保护设备与您自己的盒子之间的通道 - 这是您的服务器,一切取决于您)。
2
一个建议是创建一个位于中间的代理服务。所以实际上你的应用程序正在调用你的服务器,而服务器又会调用API并返回从服务器传回客户端的结果。这为您提供对API密钥的保护,以及将来透明地解释使用和/或更改提供者的方式。
相关问题
- 1. 从客户端隐藏API密钥
- 2. YouTubePlayer - 如何隐藏/加密API密钥?
- 3. 如何加密网站中的第三方api密钥
- 4. 隐藏来自客户端的第三方工具许可证密钥
- 5. 如何隐藏我的Dropbox API密钥
- 6. 第三方密钥存储提供商
- 7. 在ASP.NET中管理多种第三方API密钥
- 8. 从Qt隐藏密钥虚拟键盘
- 9. Java /用于从第三方类隐藏方法的模式
- 10. 第三方API
- 11. C#WinForms隐藏加密密钥
- 12. 如何在MediaWiki中不透露第三方机密密钥
- 13. Android第三方库 - 请求我的应用程序的API密钥
- 14. 使用Rails在Heroku中隐藏Google API密钥
- 15. 如何使用Windows环境变量隐藏API密钥?
- 16. 如何隐藏客户端JavaScript中的API密钥
- 17. 如何隐藏我的Google翻译API密钥?
- 18. WWW :: Netflix :: API程序并隐藏consumer_secret密钥
- 19. 如何在AJAX请求中隐藏api密钥
- 20. 如何将代码推送到Github隐藏API密钥?
- 21. Jekyll Contentful,如何隐藏配置文件中的api密钥?
- 22. Eclipse在哪里隐藏密钥库?
- 23. 隐藏密钥的最佳地点?
- 24. 加密第三方凭据
- 25. 的Xcode在何处存储第三方API秘密/密码/ ID
- 26. WooCommerce从第三方API加载产品
- 27. 在C++中隐藏密钥的跨平台方式?
- 28. Google地方自动完成隐藏密钥
- 29. 第三方API Moq'ing HttpPostedFile
- 30. Joomla第三方API集成
这是识别我的申请。 – SonnyBurnette 2009-09-02 16:01:38
“如果API密钥旨在识别您的应用程序,那么这种行为很好,您不必担心。”如果其他人可以构成您的应用程序,他们可以做一些事情,比如发送大量垃圾邮件和超载服务器等,这可能会导致您的应用程序被禁止。另外,如果它不能可靠地识别应用程序,那么首先API密钥的要点是什么? – user102008 2011-09-22 02:04:59