问题标签 [acl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1472 浏览

php - CakePHP ACL 混乱,我如何将 ACL 应用于对象,而不是动作?

谁能建议一种可扩展的设计模式来实现对照片和相册的访问控制,每个都有单独的隐私设置(即所有者、组成员、公共)?

我正在使用 CakePHP,我在 ACL 组件上阅读的示例似乎控制对控制器/动作的访问,而不是对象本身。当我尝试追踪时,它似乎失控了

  • /C/R/U/D 权限
  • 每个控制器动作
  • 每个隐私设置(即所有者、组成员、公众)
  • 每张专辑、照片等

尤其是当每个相册和照片 habtm 相册可能有 1000 张照片时。我是对的还是我完全错过了什么?

有人可以添加一些伪代码来帮助我理解如何解决这个问题吗?或者指出我正确的方向,因为我知道以前在 Flickr 等网站上已经做过。

蒂亚。

0 投票
2 回答
148 浏览

permissions - 权限的可视化建模

我已经养成了为我创建的软件手绘各种图表的习惯。我的软件主要用于网络。我将 ER 图表用于数据逻辑(MVC 模型),并使用个人发明的图表样式进行交互——哪些页面导致哪些页面以及它们做什么,即 MVC 的视图和控制器。这使我能够简化重要概念,消除不一致并突出需要进一步调查的问题领域。

现在,我开始研究一个需要相当复杂的权限系统的应用程序。不是真的“大”——只是复杂——有几个权限“维度”,其中一些权限需要动态创建,有些是静态的。

我发现自己希望有一些简单的方法来绘制权限系统图,这样我就可以以清晰的形式将想法从脑海中浮现出来,并确保没有不一致的地方。因此我的问题是:

有没有人在可视图中看到/使用过任何建模权限的方法?

0 投票
3 回答
339 浏览

mysql - CRUD 管理员:为什么不将 MySQL 用户用于 auth/acl 而不是 User/Group 表?

在几个框架(symfony/Django)中,您有管理生成器,通常通过 User 表(将用户分配给指定的 Group 表)控制访问。

我很好奇,为什么不简单地使用 MySQL 的实际用户(已经具备选择/读/写访问权限)呢?

0 投票
2 回答
873 浏览

.net - .NET RegistrySecurity API 处理非规范 ACL:处理方法

我正在尝试将访问规则添加到RegistryKey这样的:

但是,如果注册表被破坏,则会AddAccessRule引发异常(Reflector 显示该GetAccessControl调用预先确定它们不是规范的,并且当您在RegistrySecurity实例处于该状态时尝试执行写入时,您会触发故障安全):

运行regedt32(可能还有regedit)然后显示一个弹出窗口the permissions on <key> are incorrectly ordered, which may cause some entries to be ineffective <paraphrasing>Do you want to unmangle them now? Y/N</paraprasing>

我在这个问题上看到的最权威的文章是http://www.codeproject.com/KB/system/accessctrl3.aspx,它说:

但是,控制标志是作为属性实现的(谈论不一致!)。AreAccessRulesProtected您可以从/检索自动继承设置AreAuditRulesProtected(回想一下,如果 ACL 受保护,它不会自动继承)。如果您阅读第 2 部分,您会知道某些 Windows API 不支持继承,因此可能会破坏您机器的继承设置。好消息是 .NET 完全支持继承机制并将正确保留继承设置。如果您打开的安全描述符以某种方式获得了混乱的 ACL(可能来自某些流氓 Win32 应用程序),如果您尝试对其进行编辑,则会引发 InvalidOperationException。

通常,此类非规范 ACL 是使用 [sinceretired] NewSID 工具产生的,人们写知识库文章说“那就别再那样做了”

但是,至关重要的是,这并不总是原因,有时代码只需要工作。有什么好的干净安全的方法来处理这个?

我将提供两个答案,人们可​​以投票和挑选漏洞、投票、评论和挑剔。

0 投票
1 回答
1747 浏览

security - 什么是 ACL 所有者?

我发现了三种可能性,即所谓的“ACL 所有者”:

  • 所有者是受保护的资源。这就是EAz的方式。
  • ACL 所有者是拥有和编辑 ACL 的用户。(如在 java.security.acl.Acl 或 POSIX ACL 中)
  • 用户拥有受保护资源,受保护资源拥有 ACL。因此,用户间接拥有 ACL 并允许对其进行编辑。

两者之间是否存在重大缺陷?

附录:在大多数实现中,ACL 的所有者是有权更改此 ACL 的权限并拥有相应对象的用户。

0 投票
1 回答
285 浏览

security - 如何将 ACL 与受保护的资源连接起来?

将 ACL 与受保护资源连接的最佳方式是什么?

1) 受保护资源是否应该持有对其 ACL 的引用?

这很简单,但如果对象存在于数据库中,则必须先构建它,然后才能检查访问权限。

2) Spring Security 使用具有完全限定类名和对象 id 的机制在外部附加和检索 ACL。这可能会导致 n+1 选择问题,因为无法通过某个标准选择多个 ACL。如果在重构时类名发生变化,这个系统可能会崩溃。

3) 另一种方法是在 ACL 中存储对受保护资源的引用。通过延迟加载,可以在不从数据库加载受保护资源的情况下检查 ACL。

4) 每个对象都可以有一个安全描述符(就像在 Windows 中一样):

什么是更好的?

临时解决方案:我将实现 AclHolder 接口,因为域对象可以实现它,并且还可以附加 ACL 而不会影响域对象。

0 投票
1 回答
597 浏览

security - 在哪里管理 ACL 继承?

我应该在哪里最好地管理 ACL 的层次结构?

我看到了管理 ACL 层次结构的三种可能性:

1) ACL 本身管理层次结构:

2)构造一个单独的树结构来管理层次结构。

3)使用已经存在的层次结构作为 ACL 的隐式层次结构(就像文件系统已经有层次结构一样)。

以下代码是使用现有层次结构的一种可能性:

另一种方法可能是使用规则来定义什么是分层的。

我认为创建像 1) 和 2) 那样的显式 ACL 层次结构可能会有问题,因为这种层次结构通常必须反映系统结构并且是一种重复形式。

什么是最好的方法?

0 投票
0 回答
240 浏览

security - 继承访问控制条目或完整的访问控制列表 (ACL)?

我想知道是否应该继承完整的 ACL 或仅继承其访问控制条目 (ACE)。

如果子代替换整个 ACL 会很简单,但如果只添加一个额外的 ACE 则会受到限制。

如果 ACE 可以被继承,我想我需要负权限,否则从根 ACL 开始的所有权限都会被累积。正确的?

ACE 继承和负权限会增加很多灵活性,但也可能导致难以理解的安全限制。一方面我想避免消极的权利,但另一方面,系统可能会因为它们的缺失而变得难以维护(通过否则不必要的 ACL 复制)。

那么该怎么办?只继承完整的 ACL 还是继承 ACE?是否添加负面权限?

临时解决方案:由于没有人知道,我决定在访问控制条目的基础上使用继承。执行此操作不需要负权限,但我将实施它们以实现更大的灵活性。

0 投票
2 回答
591 浏览

design-patterns - 真/假/空的 UI 设计模式(用于值的继承)?

我正在尽力找出一个简洁、直接的小部件,使用任何工具包中可用的标准 UI 小部件(例如,复选框、单选按钮或列表框),它可以模拟真/假/空值。

我为什么要这样做?我将一棵树存储在数据库中(继续,批评我将分层信息存储在关系存储中),简单的继承模型是,如果某物没有值,则默认为其父值。

我现在拥有的是两个复选框:

选中“默认”将禁用第一个复选框。这有意义吗?我想到了另一个使用较少脚本的小部件:

哪个对你更有意义?我开始更倾向于第二个。如果有人有任何其他建议,我将不胜感激!

0 投票
2 回答
884 浏览

grails - grails中基于角色的域类字段访问

我正在开发一个 grails 应用程序。在某些情况下,我想根据角色控制域类字段。所以在每次调用域类的 getter setter 方法时,我想应用一些基于角色的过滤器(登录用户角色)。我假设grails将在运行时为domin类创建getter setter方法。所以在编写grails代码时是否可以应用这个逻辑。如果可能那么如何应用?

例子:

域类:

控制器:

在上面的代码中“println book.price;” 此行应仅适用于特定角色。对于某些其他角色,它应该引发一些异常。

有可能实现吗?有没有插件可以做到这一点?

请对此提供一些帮助....谢谢