建立一个安全库,我想我正在过度建设它

时间:2011-02-18 01:07:28

标签: c# .net security architecture

4 个答案:

答案 0 :(得分:2)

我没有拆分层次结构,而是“用户可以修改安全设置”权限,并在用户尝试编辑某些内容时断言。

答案 1 :(得分:1)

Complexity is the worst enemy of security.” - 布鲁斯施奈尔

为了构建一个非常安全的系统,我将依赖Active Directory进行公司范围内的访问控制。您提出的安全系统中最重要的部分是它没有重新审视obscure功能来欺骗攻击者。相反,使用Active Directory意味着您的访问控制系统将由Microsoft主动维护。这是你所依赖的平台。

此解决方案不是防弹。您仍然需要担心LDAP Injection

答案 2 :(得分:0)

实际上听起来是对的。

用户有一个上下文,可以跟踪他们已经更改的内容。当他们准备提交他们的交易时,它会在执行之前通过安全性。显然有一些你应该做的事情,我只是没有做,因为这只是我想到的90秒的观点,我会在问题出现时解决这个问题。但这是我要采取的基本方法。

class UserContext
{

    IList<PersistentObject> thingsUserHasChanged;


    public void Commit()
    {
        foreach(PersistentObject pobj in thingsUserHasChanged)
        {
            if(Security.PermitsUserToCommit(currentUser,pobj)) pobj.Commit();
        }
    }
}

答案 3 :(得分:0)

是的,这听起来过度了。

基于用户的安全性,禁止修改定义角色,授权等的对象似乎是非常不必要且过于复杂的。除非你明确要求这样做。

您是否会在运行时动态加载不受信任的插件代码?那么为什么代码的保护只会消耗你的库。

您可能希望查看授权库的其他实现,如果您无法直接使用授权库,请从中获取一些提示。

例如,Rhino Security。 Ayende有handful of blog posts about it

另一个博客上也有couple articles