我正在开发一个网站,该网站具有根据 id 更新和删除数据的功能。现在我担心的是我的网址是
www.example.com/public/controller/action/1
如果行动是delete
,任何人都可以change id from 1 to 2
url 中的 id 为 2 的数据将被删除。保持流量安全的最佳方法是什么?我正在使用 Zf2 和 Doctrine2...请提出任何建议!此外,我将 id 隐藏在字段中,任何人都可以使用 firebug 来更改字段中的值,有什么方法可以保护数据免受这种情况的影响吗?
任何加密解密方式都会使其安全,就像有人甚至编辑加密值一样,解密后不会产生所需的 id 吗?哪一个会好呢?
您应该少担心当人们更改 URL 中的参数或尝试侵入您的 HTML(隐藏字段)时会发生什么,而更应该担心您的用户实际上被允许执行的操作。
如果允许管理员删除所有posts例如,那么他是否改变并不重要domain.com/post/delete/1
into domain.com/post/delete/42
。如果管理员应该删除他们能删除的所有内容。所以让他们随心所欲地改变它。
然而,如果管理员只被允许获得对自己条目的管理权限,那么您需要将其纳入您的服务层。服务层将检查当前用户针对当前请求的对象的权限。我个人最喜欢的是ZfcRbac https://github.com/ZF-Commons/zfc-rbac.
然而,如果您想让人们更难实际更改 ID,那么您应该为每个条目指定一个唯一的哈希值。例如,网址将是domain.com/post/delete/12acd-4a7f7c6-4a7f7c6-12acd-4a7f7c6
或类似的东西。
TL/DR不要担心当人们更改 URL/HTML 中的内容时会发生什么,只需担心一般的身份验证和权限。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)