2011-02-09 12 views
2

GET/POST/PUT/DELETEリクエストをサポートするRESTful APIを作成しました。今私はAPIにJavascriptクライアントライブラリを持たせたいと思います。私はJSONPを使ってクロスドメインポリシーをバイパスすることを考えました。それはうまくいきますが、もちろんGETリクエストのためだけです。PUT/POST/DELETEクロスドメインリクエストを作成するためのJSONP質問

私はそのようなことを実装する方法を考え始めました。同時に、使用するのに苦労しないようにしようとしました。

APIの実装を編集し、すべてのHTTPリクエストを確認すると考えました。 JSONPリクエスト(クエリ文字列に「コールバック」パラメータがある)の場合、POSTやDELETEなどの他のメソッドによって呼び出される必要がある場合でも、すべてのAPIメソッドをGETリクエストによって強制的に実行します。

これは問題に対するRESTfulなアプローチではありませんが、機能します。どう思いますか?

別の解決策は、非GETリクエストを送信するIFrameを動的に生成することかもしれません。任意のヒント?ここでは、かなり類似した問題について、いくつかの関連ポイントがあります

答えて

1

...

JSONP Implications with true REST

クロスドメインの制限が理由;-)

JSONPを使用して、限られたを公開することを可能にするためにあります、安全で読み込み専用のドメイン間アクセスのビュー - あなたが潜在的に巨大なセキュリティホールを広げる可能性がある - 悪意のあるWebサイトは、hrefを指すイメージをAPIの右側部分

あなたのwebappにiframe経由でアクセスされる特定の機能が公開されている場合、Webアプリケーションのドメインのコンテキスト内ですべてのajaxが発生することは間違いなく安全です。それでもCSRFを考慮する必要があります。 (Djangoの最新のセキュリティ情報をDjangoのブログで見てみましょう - 今週のリリースでは、Django Webアプリケーションへのjavascriptの呼び出しはすべてデフォルトでCSRFである必要があります)

+0

Thx - IFrameハックを開始するためのリソースはありますか? – Mark

関連する問題