1

Django をバックエンドとして使用するフラッシュ ゲームを作成しています。

私は現在、django-tastypie を使用して API エンドポイントをセットアップしています。これをフラッシュ アプリが呼び出して、アプリケーションにデータを入力するための JSON データを受け取ることができます。

シンプルな django ビューとテンプレート システムを使用して、ミドルウェアを使用して Web ページに csrf_token を簡単に含めることができることを理解しています。

私の問題は、csrf_exempt を使用せずにデータをサーバーに戻そうとしていることです。理想的には、params タグを挿入せずにフラッシュ アプリケーションを実行できます。うまくいけば、そのまま動作するスタンドアロンの swf ファイルです。

csrf_token をフラッシュ アプリに取得して、セキュリティ上の懸念なしにサーバーにデータをポストできるようにするにはどうすればよいでしょうか?

csrf_token の方法が不可能な場合、データを安全に投稿する他の方法はありますか?

私は同様の質問につながる多くの道を検索しましたが、多くは答えられていません. 私は自分の視点に夢中になっているので、ここで何かを見落としているかもしれません。誰かがそれを行うためのより良い方法について教えてくれることを願っています.

前もって感謝します。

4

1 に答える 1

0

2つの問題があるようです。

FlashからのPOSTリクエストでCSRFトークンを実際に送信するにはどうすればよいですか?

Djangoは、ヘッダーを介してCSRFトークンも受け入れますX-CRSFTokenこちらのドキュメントをご覧ください

次のように、リクエストにヘッダーを追加できます。

var req:URLRequest=new URLRequest();
req.url="http://somesite.com";
var header:URLRequestHeader=new URLRequestHeader("X-CSRFToken","foobar");
req.requestHeaders.push(header);

URLRequestsのドキュメントはこちらです。


そもそもCSRFトークンをFlashファイルに取り込むにはどうすればよいですか?!

(オプションA)CSRFトークンはリクエストごとに生成されるため(たとえば、従来のHTMLフォームをテンプレート化する場合、GETリクエストで)、最も簡単な方法は、テンプレート化されたパラメーターを介してCSRFトークンをFlashファイルに渡すことです。何かのようなもの:<param name="csrf_token" value="{{ my_csrf_token }}" />

(オプションB)パラメーターのことをしたくないように思われるので、最後のオプションは、フラッシュファイルにCSRFTokenを配信する唯一の機能を持つカスタムDjangoビューを構築することです。したがって、フローはFlashファイルのロードになり、Flashはhttp://mysite.com/csrf_token/有効なCSRFトークンを返すだけのGETリクエストを作成し、そのトークンを使用してPOSTを実行できます。(POSTリクエストごとにGETリクエストを実行する必要があることに注意してください)。

于 2012-06-15T23:08:41.090 に答える