5

私は完全にHTTPS経由のウェブサイトを持っています。誰かがHTTP経由でアクセスしようとしても、HTTPSにリダイレクトされます。フォーム認証を使用しています。最近、サイトをより安全にするために設定を変更しました。その後、Sessionは値を保持せず、常にnullを返します。設定は、

<httpCookies httpOnlyCookies="true" requireSSL="true"/>
<sessionState cookieless="false"/>

この問題を解決する方法がわかりません。この問題を修正するにはどうすればよいですか?また、この設定を使用しない場合、私のサイトは脆弱ですか?他のすべてが安全であると考えてください。

4

1 に答える 1

4

あなたの質問は一般的すぎて多くの手がかりがないので、先に進むためのいくつかのポイントを与えることができます。

[1]domainを付けずに、Cookieにもwww.設定します。これにより、誤ってwwwが欠落している場合でも、Cookieを読み取って設定できます。

<httpCookies domain="yourdomain.com" httpOnlyCookies="true" requireSSL="true"/>

[2]<forms...同様のパラメータ(および他に設定したもの)を使用して設定する必要もあります

<forms name=".klidi" path="/" requireSSL="true" cookieless="UseCookies" 
   domain="yourdomain.com" enableCrossAppRedirects="false" 
        slidingExpiration="true" />

[3]<roleManager同様のパラメータでを設定する必要もあります。

<roleManager enabled="true" cacheRolesInCookie="false" cookieProtection="All" cookieSlidingExpiration="true" 
           cookieTimeout="20" domain="yourdomain.com" cookieRequireSSL="true">

最後に、Cookieを設定または使用して、誤って安全な接続を使用していないかどうかを確認する前に、コードにこの行を設定してくださいhttps

Debug.Assert(HttpContext.Current.Request.IsSecureConnection, "With out https, cookie will not work");

最後の行を設定することにより、サイトを作成するときにコンピューター上で問題が安全でない接続に起因するかどうかを確認および診断できます。これは、requireSSLをtrueに設定した瞬間から、単純な接続ではCookieが保持されないためです。

また、Cookieが安全でないものとして存在し、競合がある場合は、Cookieをクリアするか、他のブラウザを試してください。

また、次のように読むこともできます。ハッカーがユーザーからCookieを盗み、その名前でWebサイトにログインすることはできますか?

于 2012-09-20T06:00:38.023 に答える