2014-09-17 8 views
0

В настоящее время я работаю над проектом, который объединяет базовую аутентификацию с карнизом/пирамидой.Сочетание пирамиды с карнизом и базовым auth делает проверку пароля дважды, как предотвратить?

Из регистрации Я наблюдаю, что каждый раз, когда URL-адрес доступа, используемые учетные данные проверяются дважды. Поскольку в нашем случае это связано с большим количеством проверок базы данных, это потенциальная цель для (непреднамеренной) DoS-атаки.

На мой взгляд, я определяю карниза Сервис с заводом. В настройках моего приложения я настроил пирамиду, предоставленную BasicAuthenticationPolicy, с интенсивной проверкой ресурсов в качестве обратного вызова для аутентификации. Также в настройке приложения я настраиваю пирамиду, предоставленную ACLAuthorizationPolicy для авторизации.

Так что мне было интересно, чего мне не хватает, так как я действительно хотел бы предотвратить вторую проверку. (Должен ли я кэшировать это на объекте запроса каким-либо безопасным способом?)

ответ

1

Нашел, изучив код, это предназначенное поведение.

Это поведение срабатывает только при использовании свойства authenticated_userid (что я и делаю).

Решил эту проблему путем вызова «кэширования» в мою функцию аутентификации через декоратор. Что должно быть хорошо, поскольку те же объекты будут ссылаться через параметры функции.

Документация можно найти в упаковке для пирамиды pyramid/authentication.py

 Смежные вопросы

  • Нет связанных вопросов^_^