保护REST和JSON

时间:2009-07-17 00:41:12

标签: ruby-on-rails security rest authorization

我想使用RESTful架构构建我的Web服务来提供JSON数据。

但我只想要我自己的客户端应用程序可以从我的网络服务请求。

基本上,我的Web服务包含非公共消费的敏感数据,但我想以这种方式构建它,以便我可以构建许多连接到我的Web服务的不同客户端应用程序。

感谢您的任何想法,谢谢。

2 个答案:

答案 0 :(得分:5)

当涉及到保护Web服务时,它是RESTful或使用JSON这一事实并不是一个相关因素。任何Web服务都需要以相同的方式保护。你应该做一些事情:

  1. 如果可能,请勿在Internet上托管您的Web服务。例如,如果Web服务托管在公司的LAN中,除非您通过路由器专门公开,否则它不会公开使用。
  2. 设置身份验证和授权规则。如果您在Windows域中托管Web服务,则只需使用Windows身份验证并根据Active Directory用户和组设置规则。其他选项是使用HTTP身份验证,客户端证书身份验证,或者如果您使用.NET进行开发,则表单身份验证。
  3. 使用加密(HTTPS),尤其是当您的网站托管在互联网上时。

答案 1 :(得分:1)

你需要做一些事情才能做到这一点。首先,服务客户端需要针对您的服务进行身份验证(通过HTTPS)以发出请求。对客户端进行身份验证后,您可以返回客户端必须包含此令牌的私有令牌。只要令牌在一段合理的时间后到期,并且使用安全算法来生成它,这应该做你想要的。

如果您有更严格的安全要求,可以遵循Jakob的建议,或让客户在发出请求之前启动VPN会话。