с помощью Symfony sfDoctrineGuardPlugin пользователи могут открыть страницу, которую на самом деле они не могут, изменив URL - PullRequest
1 голос
/ 24 января 2011

Я использую Symfony 1.4, sfDoctrineGuardPlugin.

В моем бэкэнд-приложении пользователи могут перейти на страницу, которую они на самом деле не могут, изменив URL вручную. Есть ли способ остановить это?

Допустим, каждый автор может просто получить свои собственные данные в обычном режиме. Но если они изменяют id на URL, они могут редактировать, какую статью они хотят. Я искал в интернете, но не могу найти никакого решения для этого? Вы знаете способ?

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 24 января 2011

Просто скрывая вещи, которые не принадлежат определенному автору, вы не можете защитить их от редактирования или удаления.

Перегрузка executeEdit / executeUpdate / executeDelete действий в вашем бэкэндемодули для предотвращения несанкционированного управления.

Что-то вроде:

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

Кроме того, вы можете проверить правильность учетных данных.Это полезно, когда вы хотите, чтобы некоторые группы пользователей имели доступ к некоторому специальному контенту или контенту других пользователей.

Надеюсь, это поможет.

0 голосов
/ 24 января 2011

Вы должны установить связь между статьей и авторами. Я предполагаю, что он уже есть, поэтому лучший подход - переопределить метод doSelect в ArticlePeer для проверки с Author. Просто добавьте критерий для выбора статьи, принадлежащей текущему пользователю.

...