【发布时间】:2014-08-20 19:13:27
【问题描述】:
我已将前端与后端分开,以便它们通过 JSON 调用(由 rails 后端生成)进行通信。
即,我的应用调用 get_info.json,它运行一个控制器,将 ajax 信息返回到前端。
如何防止随机用户直接运行 get_info.json 脚本,从而直接访问 JSON 信息?
【问题讨论】:
标签: ruby-on-rails ajax json api
我已将前端与后端分开,以便它们通过 JSON 调用(由 rails 后端生成)进行通信。
即,我的应用调用 get_info.json,它运行一个控制器,将 ajax 信息返回到前端。
如何防止随机用户直接运行 get_info.json 脚本,从而直接访问 JSON 信息?
【问题讨论】:
标签: ruby-on-rails ajax json api
你需要为json api实现认证。
它可以像向每个请求传递一个 api_key 参数一样简单。
或者您可以限制对特定 IP 的路由的访问。
get "/posts" => "posts#show", :constraints => {:ip => '127.0.0.1'}
【讨论】:
如果前端和后端在同一个 RoR 应用程序中,则可以使用 CSRF 令牌。
只需将参数传递给 json 调用,例如 get_info.json?token=,然后在后端控制器中检查是否 params[:token] == form_authenticity_token。
希望对你有所帮助。
【讨论】: