Недостатки БЕЗОПАСНОСТИ в этом проекте для аутентификации пользователя - PullRequest
0 голосов
/ 02 апреля 2010

БЕЗОПАСНОСТЬ Недостатки в этом проекте для аутентификации пользователя.

От: http://wiki.pylonshq.com/display/pylonscookbook/Simple+Homegrown+Authentication

Примечание: а. Проект следует схеме MVC. б. Только пользователь с действительным именем пользователя и паролем может отправлять что-либо.

Дизайн: а. Иметь базовый контроллер, из которого получены все контроллеры. б. Перед вызовом любого из действий в производных контроллерах система вызывает перед действием в базовом контроллере. с. В каждом контроллере пользователь жестко кодирует действия, которые необходимо проверить в массиве. д. Действие перед сначала просматривает массив, в котором имеются защищенные действия, и определяет, вошел ли пользователь в систему или нет, выполнив пиковую нагрузку в сеансе. Если пользователь присутствует, то ему разрешено отправлять сообщения, в противном случае он перенаправляется на страницу входа.

Что вы думаете?

1 Ответ

1 голос
/ 03 апреля 2010

Я предпочитаю подход с декорированием функций, которые требуют аутентификации, потому что он не требует ввода имени действия 2 раза - в определении функции и в списке require_auth. В этом случае вы можете напечатать название действия, и оно не будет замечено переводчиком. Декорирование действий не имеет этой проблемы:

@authorize(ValidAuthKitUser())
def list(self):
    pass

Вы также можете украсить функцию __before__, и она будет влиять на все действия контроллера:

@authorize(ValidAuthKitUser())
def __before__(self):
    pass
def list(self): # automatically checks if the user is authenticated
    pass
...