如何创建“私有”RESTful资源?

时间:2011-10-24 17:31:13

标签: ruby-on-rails rest

好的,所以这可能是关于REST概念或Rails安全性的一个非常基本的问题,但请耐心等待。

我的主页上有一张谷歌地图,我希望从我的数据库中的公司获得所有纬度/经度,这样我就可以创建标记并显示它们。

所以,我创建了一个http://mywebsite.com/companies/locations的资源,它返回一个带有公司ID和每个纬度经度的json对象。

现在,这可能是正确的方法,但我一直觉得它有点太暴露了吗?

我的意思是,任何人都可以在浏览器上键入它并获取我们拥有的所有公司。这听起来不太安全。

在我看来,只有javascript ajax调用才能获取信息并将其“隐藏”在公众视线中,或者仅仅是通过默默无闻的安全案例?

我缺少一些常见的知识吗?

感谢。

2 个答案:

答案 0 :(得分:2)

是。阅读HTTP authentication。观看screencast on HTTP authentication in Rails

还有其他方法可以使用REST进行身份验证,但这是最“自然”和标准化的方法。

[编辑] 抱歉,请重新阅读您的问题。如果您需要向用户显示数据,则绝对无法隐藏数据。无论您使用哪种晦涩的方式来隐藏URL,都可以使用Firebug(例如)以及响应数据轻松捕获请求。

[编辑2] 好吧,您可以加密数据服务器端然后在Javascript中解密,但仍然可以向任何人提供解密代码。此外,我很确定你可以从调试控制台获取Google Maps对象,只需从中读取地标。

答案 1 :(得分:1)

需要发送到客户端浏览器的任何数据(即JavaScript要使用的任何数据)都很容易受到攻击。没有办法可靠地保护这些数据。