将格式化ACL信息嵌入到Symfony2中的JSON中

时间:2015-11-10 11:43:54

标签: json symfony symfony-security

我在项目中使用Symfony2及其ACL安全组件。我想在前端框架中使用显示/隐藏元素的ACL信息。

在当前对象上为当前用户附加格式化ACL信息是否安全明智?

让我们说用户有权使用VIEW和EDIT对象,因此JSON数据看起来像这样:

{
  "id": 1,
  "name": "Product",
  "_permissions": ["VIEW", "EDIT"]
}

此解决方案可能导致哪些安全漏洞?

1 个答案:

答案 0 :(得分:0)

我不认为存在安全问题。您将同意在数据中包含对象的id和类型不是问题:-)。因此,我们唯一应该考虑的是VIEWEDIT属性。这些价值观并不是秘密。它们是Symfony文档的一部分。因此,如果您拥有该对象的这些权限,那么它只是关于信息的。

如果您将JSON与您的数据一起返回,我认为VIEW属性实际上没有其他信息,因为如果您没有VIEW权限,则不会返回该信息。因此,您在此处提供的唯一信息是用户是否可以编辑该对象。

如果您考虑一下,如果您在服务器端根据权限决定是否将该对象的编辑链接添加到html页面,您将同意提供相同的信息。

因此,如果您执行isGranted("EDIT", $product)来决定是否将该编辑作为JSON的一部分返回,那么我看不到任何安全漏洞。