我知道有很多类似的问题,但是没有一个是用户可以访问代码的HTML / javascript应用程序。
我有一个用nodejs编写的私有REST API。它是私有的,因为它的唯一目的是为我的HTML5客户端应用程序(Chrome应用程序和Adobe Air应用程序)提供服务器。因此,API密钥不是一个好的解决方案,因为任何用户都可以看到javascript代码。
我想避免机器人在服务器上创建帐户并浪费资源。
有什么办法可以做到这一点?
API密钥是一个不错的解决方案,尤其是在您需要对API密钥的请求来源进行限制的情况下;请考虑,仅当原始Web请求来自授权来源(例如您的私有域)时,才应接受API密钥。如果Web请求来自未经授权的域,则可以简单地拒绝处理该请求。
您可以通过使用特殊的编码方案(例如,基于哈希的消息认证代码(HMAC))来提高此机制的安全性。以下资源清楚地说明了此机制:
http://cloud.dzone.com/news/using-api-keys- 有效