面接中にCORSのセキュリティについて質問されたのですが答えられなかったので皆さんにアドバイスをお願いします。
CORS は、サーバー側で Access-Control-Allow-Origin を設定します。* に設定されていない場合、指定されたドメインのみがリクエストを開始できるのではないでしょうか? そうしないと、リクエストはブラウザによって傍受されます。 http ヘッダーが偽造できることは見たことがありますが、Origin を手動で設定してもブラウザによってブロックされます。CORS の脆弱性はどこにありますか?解決策は何でしょうか?ありがとう###
高洛峰2017-05-19 10:44:05
逆に、JSONP と交差する CORS は、より安全なクロスドメイン手法であり、標準的なクロスドメイン手法だと思います。
Access-Control-Allow-Origin は、このドメインに存在する場合にのみリクエストを許可するドメイン ホワイトリストです。ホワイトリストが適切に設定されている場合、サーバーはクロスドメイン リクエストを統合します。
この質問では、Access-Control-Allow-Origin が * の場合に直面する問題について検討する必要があると思います。
* に設定されているものは通常、頻繁なリクエストや DDOS を回避するために、キー検証のための追加の手順があり、リクエストの頻度と数が制限されています。
また、CORS はデフォルトでは Cookie を送信しませんが、Access-Control-Allow-Credentials が true に設定されている場合は許可される可能性があり、これも CSRF 攻撃のリスクにつながる可能性があります。