关于简单REST Web服务的安全性

时间:2015-11-26 18:23:52

标签: web-services api rest security

这是我的小API,有两个网址:

  • /api/location/list -> GET
  • /api/location/detail -> GET

我正在寻找一个通过身份验证来保护此服务的流程。目前,只有一个用户(我)可以访问它。

我认为oAuth在我的案例中过于复杂,我发现这个资源用于设计a simple API。 我理解私钥/公钥和HMAC的原理,但我对此非常关注:

假设我的web服务被带有GET动词的ajax请求使用。我有/api/location/list?apikkey=userid&hash=abcde之类的东西。 最终用户可以在请求期间(通过简单的chrome控制台)轻松嗅探网络,捕获完整的URL并直接访问服务多次(我认为这是重播攻击的情况)。

差异资源谈论时间戳或nonce以使请求唯一但我在执行方面有点迷失。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用比Oauth更简单的JWToken auth规范,但如果可能,请将授权数据作为url参数使用,并改为使用Header的请求。 如果需要,还要考虑tcp级别的ssl加密。

答案 1 :(得分:1)

也许您可以尝试使用基于令牌的方法来实现安全性,如本博文中所述:

我们的想法是对身份验证资源(可能是您的应用程序的一部分)进行身份验证,以获取可在过期时使用刷新令牌刷新的临时令牌。

使用HTTPS,似乎是合适的。

我认为这取决于您期望的安全级别。基于签名的身份验证(AWS方法)非常棒,但手动实现起来有点复杂。

希望它可以帮到你, 亨利