ページの読み込み時に暗号化されたCookieがあるかどうかをチェックしてユーザーの身元を判断するウェブページがあります。しかし、開発ボックスでローカルにページをテストしているときに、そのCookieにアクセスすることはできません。Request.IsLocalは安全ですか、それともなりすますことができますか?
以前は、開発モードかどうかをページに伝えるためにappsettingを使用しましたが、dev-modeのときは固定ユーザーIDを読み込みます。その後、私はRequest.IsLocal
を発見し、私は単純に次のように確認することができます。
if(Request.IsLocal){
FormsAuthentication.SetAuthCookie("testUser", false);
}else{
FormsAuthentication.SetAuthCookie(/*EncryptedCookieValue*/, false);
}
は、この安全ですか?悪意のあるユーザーがIsLocalを偽装する可能性はありますか?
'Request.IsLocal'は、要求発信元のIPアドレスが127.0.0.1であるか、[...]がサーバのIP" _と同じである場合に "true"を返します。したがって、IPアドレスが偽装される可能性があるため、偽装することができます。また、同じサーバー上で動作するプロキシサーバーや負荷分散サーバーがある場合は、完全に嘘をつきます。 – CodeCaster
可能な重複:http://stackoverflow.com/questions/7148821/request-islocal – k3davis