2

GET / POST / PUT/DELETEリクエストをサポートするRESTfulAPIを作成しました。ここで、APIにJavascriptクライアントライブラリを持たせたいので、JSONPを使用してクロスドメインポリシーをバイパスすることを考えました。これは機能しますが、もちろんGETリクエストの場合のみです。

そこで、そのようなものをどうやって実装するかを考え、同時に使いにくいものにしようと思い始めました。

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

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

おそらく別の解決策は、非GETリクエストを送信するためにIFrameを動的に生成することかもしれません。任意のヒント?

4

2 に答える 2

1

ここにはかなり似た質問に関連するポイントがいくつかあります...

真の REST を使用した JSONP の影響

クロスドメインの制限には理由があります;-)

Jsonp を使用すると、API の限定的で安全な読み取り専用ビューをクロス ドメイン アクセスに公開できます。これを覆すと、巨大なセキュリティ ホールが開く可能性があります。 API の右側の部分を指す href を含む画像

すべての ajax が Web アプリケーションのドメインのコンテキスト内で発生する、iframe を介してアクセスされる特定の機能を Web アプリケーションに公開することは、間違いなくより安全な選択です。それでも、CSRF を考慮する必要があります。(主要な例として、Django ブログでの Django の最新のセキュリティ発表をご覧ください。今週のリリースの時点で、Django Web アプリケーションへのすべての JavaScript 呼び出しは、デフォルトで CSRF 検証済みである必要があります)

于 2011-02-10T15:35:10.857 に答える