代码之家  ›  专栏  ›  技术社区  ›  zef

Zend拒绝访问更改的url参数最佳实践?

  •  0
  • zef  · 技术社区  · 12 年前

    在我的View index.phtml中的多用户应用程序中:

    <a href="<?php echo $this->url( array( "module" => "myModule", "controller"
    =>"myController","action" => "edit", "id" => $objThings->thingsid), 
    'default', TRUE )?>
    

    单击此链接将指向url:

    http://website/mymodule/mycontroller/edit/id/228 
    

    用户可以在其中编辑记录。

    一旦登录,用户就可以复制这个url并将参数更改为229或130等,并从其他用户获得信息访问权限。

    防止这种情况、在记录级别设置身份验证并拒绝访问其他用户的记录的最佳做法是什么?(当然,这些记录有一个userid)。
    在url中隐藏参数是不吸引用户的一个步骤,欢迎对此提出建议。 模块/操作级别的身份验证也是必要的。

    我一直在寻找,但似乎找不到解决方案。

    1 回复  |  直到 12 年前
        1
  •  0
  •   Ashley    12 年前

    两者都做。如果你想编辑登录用户的个人资料详细信息,你不需要URL中的id,因为你已经知道他们是谁了。

    然后,在更新代码中,只允许他们更新自己的特定数据。

    如果你有一个登录的用户,你很可能有一个为他们准备的对象,这将使更新他们的数据变得容易(取决于你是使用ActiveRecord还是其他什么),否则请确保在SQL中使用id。