0
カスタムAuthorizeAttibute(グローバルに登録された)内で、コントローラタイプとアクションの呼び出しに基づいて承認を適用する可能性のあるセキュリティ上の問題や落とし穴がありますか?コントローラとアクションの一元化された承認(ASP.NET MVC 3)
(実際のコードではありません)
string controllerFullName=_filterContext.ActionDescriptor.ControllerDescriptor.ControllerType.FullName;
string minRequiredRole = GetControllerMinRequiredRole(controllerFullName);
if(User.MeetsRoleRequirement(minRequiredRole))
{
//give access
}
else
{
//no you're not allowed
}
したがって、私がAuthorizeAttrbuteを継承し、base.OnAuthorizedを呼び出すとどうなりますか?私はまだキャッシングの問題について心配する必要はありますか? (今は、OnAuthorizedをオーバーライドしてAuthorizationContextを保持していますが、HttpContextBaseを渡してからAuthorizeCoreでAuthorizationContextを取得する方法はわかりません) – enamrik
興味深いスニペットがあります。 www.diaryofaninja.com/blog/2011/07/24/writing-your-own-custom-aspnet-mvc-authorize-attributesあなた自身のOnAuthorizationを使用していますか?もしそうなら、彼らがここで何をしているかを書きます。 –
私は自分自身を書くのではなく、デフォルトのAuthorizeAttrbute属性から継承しています。だから、base.OnAuthorizedを呼び出すことによって、キャッシュのハッキングが発生します(ハックがコアAuthorizeAttrbuteクラスの一部であるように見えます)。私は安全だと思われる。追加する必要がある場合を除き、答えに感謝します – enamrik