あるサイトのフォーム認証が別のサイト内で使用される可能性がある脆弱性に対処しています。 IISまたはASP.NETでこれが発生するのを許可している方法がわかりません
手順:
環境:
関連するASP.NET認証コードとweb.configを使用してこの問題を再現するために、ダミーのテストコードを作成しました。でもダミーコードでは再現できません。実際の(大規模な)アプリケーションでのみ機能します。そのため、関連するソースコードを共有することはできません。そのため、解決策としてのさらなる調査のためのヒントを受け入れることができます。
最も可能性が高い理由は、machineKeyノードが各Webアプリケーションのweb.configに設定されており、ノードの両方に同じ値があることです。このノードには、認証Cookieを暗号化および復号化するためのキーが含まれています。デフォルトでは(ノードが存在しない場合)、サーバーはアプリケーションごとに一意のキーを作成します。ただし、machineKeyノードを指定した場合(たとえば、複数のWebサーバーを持つ単一のWebアプリケーションがあり、任意のノードで認証Cookieを作成または使用する必要がある場合)、指定したキーが使用されます。複数のWebアプリケーションで同じ値が使用された場合(または公開された場合)は、説明した状況に陥るため、脆弱性が生じる可能性があります。あるアプリケーションからの有効な任意の認証Cookieは、別のアプリケーションの偽造認証トークンとして再利用できます。