我将我的前端与后端分开,以便它们通过JSON调用(由rails后端生成)进行通信。
即,我的应用程序调用get_info.json,它运行一个控制器,将ajax信息返回给前端。
如何防止随机用户直接运行get_info.json脚本,从而直接访问JSON信息?
答案 0 :(得分:0)
您需要为json api实现身份验证。
可以像将api_key param传递给每个请求一样简单。
或者您可以限制对特定IP的路由访问。
get "/posts" => "posts#show", :constraints => {:ip => '127.0.0.1'}
答案 1 :(得分:0)
如果前端和后端位于同一个RoR应用程序中,则可以使用CSRF令牌。
只需将一个param传递给json调用,如get_info.json?token =<%= form_authenticity_token.html_safe%>,然后在你的后端控制器中检查是否params [:token] == form_authenticity_token。
希望这会对你有所帮助。