2016-07-13 6 views
5

私が作業しているサイトでは、マネージャがログインできるようにしたいのですが、httpやhttpsでログインしても大丈夫です。別のSO質問(how can I share an asp.net session between http and https)に基づいて、私はクッキーにsecure = falseを設定するとこれが可能であると考えました。これに追加するには、サイトの安全な部分にサブドメインを使用します。したがって、httpsではsite.comを使用し、httpsではsecure.site.comを使用します。そこで、web.configで認証用のドメインを設定しようとしました。セキュアと非セキュアでの認証共有

<authentication mode="Forms"> 
    <forms loginUrl="/account/login" 
    protection="All" timeout="30" name=".ASPXAUTH" path="/" 
    requireSSL="false" slidingExpiration="true" defaultUrl="/" 
    cookieless="UseDeviceProfile" domain="site.com" 
    enableCrossAppRedirects="false" /> 
</authentication> 

私はこれをすべて間違っていますか?私はいくつかのセキュリティ上の懸念があることを理解しており、要求があったときにそれらに対処するつもりでした。私はちょうどユーザーが一度ログインして、httpとhttpsを介して記憶されるようにしたい。ありがとう。

+3

など、あなたの許可クッキー&がhttps://ssl.site.com上の流れの中でそれを使用盗む。 – mxmissile

+0

私は同じように感じたが、管理者がそのように望んでいません。 – Wade73

+1

がするような状況のような音[ (https://sites.google.com/site/unclebobconsultingllc/blogs-by-robert-martin/saying-no)。私たちの業界では、安全なチャネルと安全でないチャネルとの間のトラフィックを共有することは悪いことだと考えています。それを不可能にするか、少なくとも困難にする。 nstinctは、「すべての場合に安全なチャネルを使用するだけです」と言っています。ベストプラクティスを取り巻く作業を構築する貴重な時間を費やすことは、あなたにとっては専門家ではないでしょう。 – Will

答えて

2

あなたのweb.configに間違ったドメインがあると思います。あなたは、あなたが例えばssl.site.comとno-ssl.site.comドメインの両方を生きるために、フォームの認証クッキーを許可している

domain=".site.com" 

にそれを変更する必要があります。

すべてのセキュリティは、あなたのソリューション全体でhttps://で始まります。そうしないと、中間者の攻撃(Webプロキシがあなたのソリューションに不適切なコンテンツを挿入する可能性があります。ただ、問題は解決し、HTTPSにすべてをリダイレクト

+0

両方とも.site.comとsite.comの両方を使用していますが、これはどちらも私が見た例では表示されていますが、運がないためです。クッキーにドメインを設定すると、認証クッキーを認識していないようです。 – Wade73

関連する問題