我正在浏览Anypic tutorial和数据模型部分,因为我想构建一个类似的应用程序。我的问题是为什么我不能删除权限限制并让图像类包含likes(int)和注释(字符串数组),并且不允许应用程序的用户编辑其他用户图像。这种方法的缺点是什么?
谢谢
答案 0 :(得分:1)
为了安全起见,有许可限制。
通过将likes
与Photo
类分开,可以防止其他用户修改其他人的照片。解析ACL(访问控制列表)的工作方式是限制读/写访问。
让我们考虑likes
类中包含Photo
的情况。如果一个用户想要喜欢别人的照片,则他们必须直接修改用户的照片,这需要ACL中的写入权限。
没什么大不了的吧?错误。有恶意的人可以为您的应用构建自己的REST API调用,并对其他人的照片执行他们想要的任何操作。我可以根据您应用的其余部分远程修改或删除您的照片,欺骗其他喜欢以及大量其他漏洞利用。
如果您仍希望将likes
保留在Photo
类中,但不具有公共写入权限,那么每当有人想要照片时,您都必须使用云代码执行写入主密钥。您还需要事先进行额外验证,以便其他人无法欺骗此请求。
解析ACL很棒,因为它们非常简单,并且可以快速允许您根据需要在应用程序中划分读/写访问权限。