使用Symfony sfDoctrineGuardPlugin,用户可以通过更改URL打开实际上无法打开的页面

时间:2011-01-24 05:09:23

标签: security routing symfony1 sfdoctrineguard

我正在使用Symfony 1.4,sfDoctrineGuardPlugin。

在我的后端应用中,用户可以通过手动更改网址来访问实际上无法访问的页面。有什么方法可以阻止它吗?

让我们说,每个作者都可以正常地获取自己的数据。但如果他们更改网址上的ID,他们可以编辑他们想要的文章。我在互联网上搜索但找不到任何解决方案?你知道吗?

非常感谢。

2 个答案:

答案 0 :(得分:1)

通过隐藏不属于特定作者的内容,您无法保护其不被编辑或删除。

在后端模块中重载executeEdit / executeUpdate / executeDelete个操作,以避免未经授权的管理。

类似的东西:

public function executeEdit(sfWebRequest $request) {
    ...
    $this->forward404Unless($this->article->belongsTo($me));
    ...
}

此外,您还可以检查是否有正确的凭据。当您希望某些用户组访问某些特殊内容或其他用户的内容时,它非常有用。

希望有所帮助。

答案 1 :(得分:0)

你必须在文章和作者之间建立关系。我认为已经有一个,所以最好的方法是在ArticlePeer中覆盖doSelect方法来检查作者。只需添加条件即可选择属于当前用户的文章。