1

私は、JSONの形式でサーバーへの多くのjQueryAJAXリクエストに依存するRailsアプリを開発しています。アプリには認証がありません(一般に公開されています)。これらのリクエストのデータは小さなチャンクでは機密ではありませんが、外部エージェントがデータにアクセスしたり、リクエストを自動化したりすることを避けたいと思います(サーバーの負荷とデータ自体のため)。

理想的には、同じドメイン(つまり、私のWebサイトのクライアント)のJavaScriptからのみ要求を行うことができる、ある種の認証を含めたいのですが、これを行う方法や方法はわかりません。クエリ文字列や応答の暗号化についても考えています。

ありがとうございました。

4

4 に答える 4

1

アプリだけがこれらのJSONをリクエストする必要があるとはどういう意味ですか?クライアントは最終的にイベントをトリガーする必要があります。そうしないと、サーバーにリクエストが送信されません。

アプリのページのソースコードを確認してください。アプリケーションコントローラーのprotect_from_forgeryメソッドによって生成された認証トークンに気付くでしょう-APIから:

リクエストフォージェリ保護をオンにします。GET以外のHTML/JavaScriptリクエストのみがチェックされることに注意してください。

デフォルトでは、これは有効になっており、アプリケーションコントローラーに含まれています。

リクエストが自分のIPからのものかどうかを本当に確認する必要がある場合は、このすばらしい質問をご覧ください。

于 2012-12-15T16:03:47.980 に答える
1
I want to avoid external agents from having access to the data... because of the server load and because of the data itself.
  1. あなたが本当にセキュリティについて心配しているなら、この他の質問はAPIキーを実装する方法を詳述します:それがjsコードを見ている誰にでも見られることができるときのjavascriptAPIキーのポイントは何ですか

  2. まだ解決していない問題を解決するべきではありません。実際に問題になるまで、サーバーの負荷を気にする必要はありません。他のエージェントからの負荷が大きすぎることに気付いた場合は、サーバートラフィックを監視し、この機能を実装してみませんか?

于 2012-12-15T17:04:26.880 に答える
1

token=$('meta[name=csrf-token]').attr("content")結局、リクエストURLを渡してsession[:_csrf_token]、コントローラーで比較しました。

于 2012-12-16T13:35:11.740 に答える
0
def check_api
  redirect_to root_url, :alert => 'effoff' unless request.host =~ /yourdomain.com/
end

それはあなたのドメインをチェックするために働くはずです。jsの部分が必要かどうかはわかりませんが、それは何かです。

于 2012-12-15T16:41:28.990 に答える