一般的なMVC3スケルトンサイトをログインしてホストし、それをホストすると、ログインの内容はどれくらい安全ですか?マイクロソフトのフォーム認証の悪用が知られていますか?認証プロセスと[Authorize]
保護が重量を保持しているとは信用できますか?どのように安全なasp.net mvc 3のボックスフォーム認証の外ですか?
0
A
答えて
3
ASP.NETフォーム認証は実証済みのテクノロジなので、Authorize属性はOKです。しかし、あなたのために生成されたスケルトンASP.NET MVCアプリケーションについて尋ねられて以来、それには欠陥があります。たとえば、アカウントコントローラのLogOnメソッドは、[RequireHttps]
属性で修飾されていません。つまり、非セキュアチャネルを介してアクセスできます。 ReturnUrlパラメータが実際に同じドメインに属していたURLであることを確認しなかった認証方法にはもう1つの欠陥がありました。これは、ASP.NET MVC 3ツールアップデートで修正されました。
web.config
における認証部における他の不備もあります
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
requireSSL
属性は認証Cookieが非セキュアなチャネルを介して送信することができることを意味true
に設定されていませんが。 slidingExpiration
プロパティもfalseに設定されていないため、リクエストごとにクッキーが自動的に更新されます。私はあなたにfollowing guideを見てお勧めします。
関連する問題
サイトがhttpsで実行されていない場合、requiressl属性またはrequirehttpsは影響を与えますか? httpで動作させる場合、サイトは安全ではありませんか? –
@ TravisJ、もちろんそれは効果があるでしょう。 HTTPでサイトを実行していて、requireSSLプロパティをtrueに設定した場合、ブラウザは認証されていないチャネルを介してサーバーに認証Cookieを送信しないため、認証できなくなります。これはセキュリティが強化されるため、良いことです。あなたのアカウントコントローラで '[RequireHttps]'属性を使うと、すべてのHTTPリクエストを強制的にHTTPSにリダイレクトします。 –
ダーリンの入力をありがとう、私はそれを感謝します。 –