【问题标题】:Preventing calls to my JSON api outside the html app防止在 html 应用程序之外调用我的 JSON api
【发布时间】:2014-08-20 19:13:27
【问题描述】:

我已将前端与后端分开,以便它们通过 JSON 调用(由 rails 后端生成)进行通信。

即,我的应用调用 get_info.json,它运行一个控制器,将 ajax 信息返回到前端。

如何防止随机用户直接运行 get_info.json 脚本,从而直接访问 JSON 信息?

【问题讨论】:

    标签: ruby-on-rails ajax json api


    【解决方案1】:

    你需要为json api实现认证。

    它可以像向每个请求传递一个 api_key 参数一样简单。

    或者您可以限制对特定 IP 的路由的访问。

    get "/posts" => "posts#show", :constraints => {:ip => '127.0.0.1'}
    

    【讨论】:

      【解决方案2】:

      如果前端和后端在同一个 RoR 应用程序中,则可以使用 CSRF 令牌。

      只需将参数传递给 json 调用,例如 get_info.json?token=,然后在后端控制器中检查是否 params[:token] == form_authenticity_token。

      希望对你有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-15
        • 1970-01-01
        • 2019-07-30
        • 1970-01-01
        • 2017-11-15
        • 1970-01-01
        相关资源
        最近更新 更多