2013-08-12 29 views
9

私は角のあるアプリケーションのajaxリクエストにantiforgerytokensを実装しようとしています。AntiForgeryTokenのライフタイムと複数の使用?

抗生物質には生涯はありますか?私がアプリをタッチしていなくても、ウェブブラウザーで長時間開いていれば、1か月間言う。古くなったトークンのためにajaxリクエストが失敗しますか?

複数のコールでトークンを再利用することはできますか? 1つのトークンをページのどこかに置いて、すべてのAjax呼び出しでそれを取得できますか?

+0

良い1つの質問は、まだupvotesがない理由を知らない。 –

答えて

0

古くなったトークンのためにajaxリクエストが失敗しますか? はい

複数のコールでトークンを再利用することはできますか? いいえ

しかし、最初にAJAXで偽造防止術のトークンを使用しているのはなぜですか? AJAXを使用している場合は、APIを使用しています(たとえAJAX /その他のヘッドレス通信用のアクション/コントローラのコレクションのみ)。 1)APIは通常になります。サードパーティのアクセスを許可します.2)にもがない場合でも、それらを保護するためのより良い方法がありますので、偽造防止トークンはAPIでうまく機能しません。

あなたのサイトだけがあなたの「API」にアクセスできるようにするには、HTTP認証やその他のスキームを実装して、あなたの「API」へのリクエストを認証します。これは、失敗しない長期実行セッションを許可する方法です。

1

実際にAPIは第三者によって消費されることになっていますが、AFTとの単一ページインターフェイスについては何がありますか?

CSRFのアタックを防ぐためにはまだAFTが必要だと心配です。そして、ここにそれらをAjax requestsで使う良い方法です。

偽装トークンは、セッションごとに生成され、有効期限が切れるまでセッションデータに残ります。新しいセッションでは、新しいトークンが生成されます。もちろん、単一のトークンは同じセッション内で複数回再利用できます。

私が追加したリンクを確認してください。トークンがAjaxリクエストでどのように取得されるかの例があります。

+0

私は前にそのページを見てきましたし、同様に実装しました。私の場合、私はトークンを「マスタページ」にレンダリングしています(これは、私の場合は、視点からのマスターページになります)。同じトークンを何度も何度も再利用しています。ただし、ごくまれに、このユーザーに対してトークンが作成されていないというエラーがあります。私はそれがバックボタンを使用して、認証されていないユーザーのために偽造防止措置があるページを再利用すると思います。 –

+0

jqueryを使用してantiforgerytokenにアクセスしています。 私は偽造防止薬を回収するためにアクセスできるウェブサービスを検討してきました。それは後ろ向きに見えますが、一方ではページを取得することと同じですが、残りのページはありません。 –

+0

トークンを取得する方法があれば、csrfで簡単に取得できる場合は、そのトークンの目的は何ですか?バックグラウンドでトークンを使用してページをプリロードし、そのページからトークンを保持することを検討してください。 –

関連する問題