Добрый день, коллеги
Небольшой оффтоп, но возможно кому-то будет полезным. Подыму вероятно
избитую тему, но столкнулся с проблемой сегодня впервые. Для тех у кого
все еще хранятся пароли в БД в явном виде:

Аутентификатор вида

server_condition = ${lookup pgsql{SELECT login FROM \
                     accounts WHERE login = \
                     '$1' AND password = \
                     '$2'}{yes}{no}}

будет отрабатывать с любым логином и паролем ' OR ''='

Сегодня мой коллега обратился за помощью поскольку таким нехитрым
способом через него шла рассылка.
Использование quoted_pgsql эту дыру закрывает, однако делает невозможным
использование в паролях символов % и _

В качестве быстрого решения может быть:

server_condition = ${lookup pgsql{SELECT login FROM \
                     accounts WHERE login = \
                     '$1' AND md5(password) = \
                     '${md5:$2}'}{yes}{no}}

_______________________________________________
Exim-users mailing list
[email protected]
http://mailground.net/mailman/listinfo/exim-users

Ответить