state
パラメータが使用されているため、プレーンのセキュリティは、質問の問題ではありませんでした。私が念頭に置いていた
主な懸念は以下の通りであった。
- それが候補トークンを提示するために戻って来ています私のアプリは、Facebookのに送られ、同じブラウザであるかどうか?
- エージェント(ブラウザのようなエージェント)またはエージェントが繰り返しOAuthリクエストを行っているかどうか、私のアプリが悪質なトークンでFacebookに繰り返し連絡してFacebookに悪影響を与える可能性のある悪いOAuthトークンを提示しているかどうか。
最初の問題の唯一の解決策は、state
のほかにクッキーを設定することです。 referer
は、ほとんどのプロバイダがhttpsを使用していなかった場合に役立ちます。
第2の問題はニュアンスがあります。誤って動作するエージェントは、悪意のあるエンティティによって直接制御される必要はありません。間接的な手段(一般的なハイジャックされたウェブサイト、ソーシャルエンジニアリング)によってリダイレクトされた通常のユーザーのブラウザかもしれません。
ニュアンスのため、referer
ヘッダーが偽造されていない可能性があります。ただし、httpsは意味のあるメリットを排除します。
POSTでCookieを設定していると、サードパーティのウェブサイトでこれらの設定が行われる可能性があり、ユーザーを大量にリダイレクトするハッキングされたWebサイトのため、OAuthレスポンスが氾濫しないためですOAuth。
これは明確な答え(または質問)ではありませんが、これは質問の背後にあるニュアンスを示していることをうまくいけばよいと思います。
「HTTP Referer」とそのようなヘッダは簡単にシミュレートできます。ユーザーは任意のヘッダーを送信できます。 – safarov
私はあなたが要求されたソース – safarov
を確認するためにIPアドレスを確認することができると思いますが、IPアドレスはユーザのものではありませんか? – necromancer