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

发布于 2024-10-14 08:47:14 字数 207 浏览 0 评论 0原文

我正在使用 Symfony 1.4,sfDoctrineGuardPlugin。

在我的后端应用程序上,用户可以通过手动更改 url 到达实际上无法到达的页面。有什么办法可以阻止它吗?

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

多谢。

I am using Symfony 1.4, sfDoctrineGuardPlugin.

On my backend app, users can reach a page which they cannot actually by changing url manually. Is there any way to stop it?

Lets say, every author can just reach their own data normally. But if they change id on url they can edit which article they want. I searched on the internet but cannot find any solution for it? Do you know a way?

Thanks a lot.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一萌ing 2024-10-21 08:47:14

仅隐藏不属于特定作者的内容无法保护它们不被编辑或删除。

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

例如:

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

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

希望有帮助。

By just hiding things that doesn't belong to a particular author you can't protect them from being edited or deleted.

Overload executeEdit/executeUpdate/executeDelete actions in your backend modules to avoid unauthorized management.

Something like:

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

In addition, you can check for proper credentials. It's useful when you want to some user groups to access some special content, or content of another users.

Hope that helps.

小嗷兮 2024-10-21 08:47:14

你必须在文章和作者之间建立关系。我想已经有一个了,所以最好的方法是重写 ArticlePeer 中的 doSelect 方法来与作者核实。只需添加一个条件即可选择属于当前用户的文章。

you have to make a relation between article and authors. I presume there is already one, so the best approach is to override doSelect method in ArticlePeer to check with Author. Just add a criteria to select articles belongs to the current user.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文