私は特に、サードパーティのウェブサイトがAJAXを通じて私のサービスに電話できるようにするためにJSON/RESTウェブAPIを開発しています。CORSを有効にするのはいつ安全ですか?
Access-Control-Allow-Origin: *
サードパーティのサイトはAJAXを通じて自分のサービスを呼び出すことができます:したがって、私のサービスは、有名なCORSヘッダを送信しています。これまでのすべての罰金。
ただし、私のWeb APIのサブセクションは非公開で、認証(OAuthとaccess_tokenクッキーを持つかなり標準的なもの)が必要です。私のサイトのこの部分でCORSを有効にしても安全ですか?
第三者のWebサイトにも、このサービスの部分とやりとりするajaxクライアントがある場合は、面白いでしょう。しかし、最初に同じ発信元ポリシーが存在する理由は、これが危険である可能性があるということです。後で訪問するウェブサイトがあなたのプライベートコンテンツにアクセスできるようにする必要はありません。
私が恐れているシナリオは、ユーザーがWeb APIまたは信頼できるWebサイトからログオンすることを忘れていることです。これにより、彼は後で彼のプライベートコンテンツにアクセスするために既存のセッションを使用して他のすべてのWebサイトを許可するのだろうか?
だから、私の質問:それは非パブリックコンテンツのCORSを有効にするために、これまで安全
- ですか?
- CORS対応サーバーがcookieを使用してsession_tokenを設定する場合、このCookieはCORSサーバーまたはメインWebページサーバーのドメインに保存されますか?
CORSヘッダーは、ほかの発信元から他の人がアクセスしたいリソースにのみ送信できます。また、CORSのアクセスを、使用が予想される起点に限定することもできます。 –
Idealy、セキュリティが許せば、すべてのリソースに任意の起源からアクセスできるようにしたいと思います。有効な資格情報を提供することは、依然としてユーザーの責任です。悪意のあるWebサイトからのクロスサイトスクリプティング攻撃の扉を開いていないことを確認したいだけです。 – Jeroen