在URL中发送参数的最佳和安全方式

Dee*_*yal 5 php security url zend-framework zend-framework2

我正在一个网站上工作,其中有基于id更新和删除数据的功能.现在我担心的事情就像我的网址一样

www.example.com/public/controller/action/1

如果操作是delete,则任何人都可以change id from 1 to 2在url中,并且id为2的数据将被删除.什么是保持流量安全的最佳方法.我正在使用Zf2和Doctrine2 ......请提出任何建议!而且我保持id隐藏在字段中,任何人都可以使用firebug来改变字段中的值,有没有办法保护数据呢?

任何加密 - 解密方式是否会使其安全,就像任何人甚至编辑加密值一样,在解密之后它不会导致所需的ID?哪一个会好,我从未使用过加密解密.

Sam*_*Sam 11

当人们更改URL中的参数或尝试破解HTML(隐藏字段)中的内容时,您应该更少担心会发生什么,您应该担心实际允许用户执行的操作.

例如,如果允许管理员删除所有帖子,那么如果他改变domain.com/post/delete/1了,则无关紧要domain.com/post/delete/42.如果管理员应该删除他们可以做的一切.因此,让他们尽可能多地改变它.

但是,如果管理员只允许获得自己条目的管理权限,那么您需要将其用于服务层.服务层将检查当前用户对当前请求的对象的权限.我个人最喜欢的是ZfcRbac.

但是,如果您想让人们更难以实际更改ID,那么您应该为每个条目提供唯一的哈希值.因此,例如网址将是domain.com/post/delete/12acd-4a7f7c6-4a7f7c6-12acd-4a7f7c6或类似的东西.

TL/DR不担心当人们改变URL/HTML中的内容时会发生什么,只需担心一般的身份验证和权限.