私はASP.NETアプリケーションをMVCに移植しており、ユーザーの表示内容を確認するために、ロールのリストと表示可能なアイテムIDのリストを含む、自動化されたユーザーに関する2つのアイテムを格納する必要があります。ユーザーの役割 - セッションに保存しない理由
Webサービスで過去にWSEを使用していたため、信じられないほど複雑になり、正しくデバッグすることができませんでした。今私は、セッションにこれらのものを格納するだけで、ソリューションを大幅に簡素化するために探していたWebサービスを捨てています。同僚は役割とメンバーシップ・プロバイダーの使用を提案しましたが、これを調べると多くの問題が見つかりました:
a)非常に制約の厳しい方法テストを書くことさえ厄介です。
b)RolesProviderの唯一のキャッシュオプションは、セキュリティ上の理由で拒否したCookieに基づいています。
c)合併症や不要な手荷物の終わりはありません。
簡単に言えば、ユーザーのセッションに2つの文字列変数などを安全に格納し、必要に応じてそれらを参照するだけです。何がそこにある私は思考を残してい
http://blogs.sans.org/appsecstreetfighter/2009/06/14/session-attacks-and-aspnet-part-1/
を参照して、10分のジョブは、これまでの調査の数日間を取ったし、我々は今、そのセッションIDは明らかに偽造することができます発見した問題点を配合することであると思われますこの簡単な仕事をする簡単な方法はありませんが、信じることは不可能です。
誰でした:
a)は、私はいつも彼らがいたと信じてASP.NET MVCセッションを安全にする方法についての簡単な情報を提供し?
b)上記のように複雑な悪夢を別の悪夢に置き換えることなく、ログインしたユーザの役割などのためにこれらの2つの文字列変数を保存する別の簡単な方法を提案しますか?
ありがとうございます。
私はSSLを使用しているので、何の問題もないと言いました。また、私はセッションのリサイリングに問題がなかったので、私はそれについて心配していません。 – Phil
セッション変数は完全に安全です:これは私が思ったものですが、私がリンクしてきた記事は、ユーザーを騙してさまざまな方法で既存のセッションに参加させ、その後ログインした認証済みのユーザーと共有できることを示唆しています他の人が使用するためにそこにすべての自分の役割を格納します。明らかな解決策は、IPアドレスをセッションに格納して毎回確認することでしたが、明らかにリクエストでそれを偽造するのは簡単です。私は – Phil
の既存のセッションワークに参加する方法を提案することができませんでしたが、明らかにハッカーとしてのスキルが不足していることに頼らない理由を知りたいのです。もし私がそれに自信を持っていたら、私たちは問題を解決したと思うが、これまでのところ私はそうではない。 – Phil