在 symfony2 原则2 中传递 URL 中的 id 或主键是否可以安全进行编辑


Is passing the id or primary key in URLS safe for editing in symfony2 doctrine2

我的网址如下,用于控制器,例如

/user/profile/{id}/edit

现在我发现它不是很安全,因为如果前一个成员在那里输入任何其他数字,那么数据将入错误的用户。

基本上我在首页上有表格,上面有选择学生列表,老师然后选择学生,然后走得更远。在这里,我提交表单并在会话变量中设置userid

页面工作正常的事情很少,因为我没有在 URL 中放置任何变量。

但是我卡在了用户添加的分配列表的地方。由于我以表格格式显示,每次单击都会转到单独的配置.我必须将assignmentid放在 URL 中

有没有办法解决这个问题,这样我就不需要在 URL 中输入任何东西

首先,你应该假设每个用户的输入/操作可能是错误的或邪恶的: 因此,在 Symfony2 防火墙和 isGrant 函数下实现验证,以检查用户是否有权编辑用户。

其次,也许你应该在URL中给一个id一个用户名或一个用户slug:通过耕种你基地的所有用户ID来访问编辑页面会更困难。

通过 URL 传递 ID 并没有错。您可以使用POSTSESSION数据来传递 ID,但这对用户来说可能既麻烦又烦人,因为它会扰乱浏览器历史记录导航。

相反,如果担心安全性,您应该对每个请求进行权限验证。如果问题是美学问题而不是安全问题,则可以为每个分配创建一个唯一的名称,可以改为传入 URL。