对于像
这样的控制器,我的网址如下所示 /user/profile/{id}/edit
现在我发现它并不安全,因为如果优先成员在那里输入任何其他数字,那么数据将被插入错误的用户。
基本上我在首页上有选择学生名单的表格,老师然后选择学生,然后进一步。在这里,我提交表单并在会话变量中设置userid
。
很少有东西能正常工作,因为我没有在URL中添加任何变量。
但是我被困在哪里我有用户添加的assignemnts列表。因为我以表格格式显示,每次点击都会分开分配。我必须将assignmentid
放入网址
有没有办法解决这个问题,所以我不需要在URL中添加任何内容
答案 0 :(得分:1)
首先,您应该假设每个用户输入/操作都可能是错误或邪恶的:因此,在Symfony2防火墙和isGranted函数下实施验证,以检查用户是否有权编辑用户。
其次,也许你应该在url中给一个用户名或用户slug中的id:然后通过耕种你的基础的所有用户id来到达编辑页面会更加困难
答案 1 :(得分:0)
通过URL传递ID没有任何问题。您可以使用POST
或SESSION
数据来传递ID,但这对用户来说既麻烦又烦人,因为它可能会扰乱浏览器历史记录导航。
相反,如果担心安全问题,您应该对每个请求进行权限验证。如果问题是美学问题而非安全问题,则可以为每个可以在URL中传递的作业创建唯一名称。