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

将格式化的ACL信息嵌入Symfony2中的JSON,json,symfony,symfony-security,Json,Symfony,Symfony Security,我正在我的项目中使用Symfony2及其ACL安全组件。我想使用前端框架中的ACL信息来显示/隐藏元素 在当前对象上为当前用户附加格式化的ACL信息是一个糟糕的安全想法吗 假设用户拥有查看和编辑对象的权限,那么JSON数据如下所示: { "id": 1, "name": "Product", "_permissions": ["VIEW", "EDIT"] } 此解决方案可能导致哪些安全漏洞?我认为不存在安全问题。您将同意在数据中包含对象的id和类型不会有问题:-)。因此,我们唯一

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

在当前对象上为当前用户附加格式化的ACL信息是一个糟糕的安全想法吗

假设用户拥有查看和编辑对象的权限,那么JSON数据如下所示:

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

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

我认为不存在安全问题。您将同意在数据中包含对象的id和类型不会有问题:-)。因此,我们唯一应该关注的是
视图
编辑
属性。这些价值观不是秘密。它们是Symfony文档的一部分。因此,只有当您拥有该对象的这些权限时,才与信息有关

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

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

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