Я работаю на небольшого интернет-провайдера, который обслуживает электронную почту примерно 6000 пользователей, и мы находимся в процессе обновления до нового почтового сервера Debian. Один из многих запросов, которые мы получаем от наших пользователей, - это возможность самостоятельно изменить свои пароли электронной почты.
Раньше мы избегали этого параметра, за исключением qmailadmin, который предоставляется только избранным бизнес-клиентам, которым мы можем доверять. Вообще говоря, я думал, что позволить пользователям изменять свои собственные пароли электронной почты - это рецепт катастрофы. Это означает не только то, что они, вероятно, будут использовать удивительно глупые пароли, но и возможность ошибок кода, позволяющих злоумышленникам изменить каждый паролей, вероятно, довольно высока.
Кроме того, исторически у нас была веб-почта (Squirrelmail и Horde, если хотите знать), работающая полностью на отдельном сервере, но многие HOWTO говорят, что нужно размещать их на одном сервере. Опять же, этого я избегал, потому что я параноик, но, вероятно, это справедливо. Если я правильно помню, это самая большая причина, по которой пользователи не могут менять свои пароли через собственную веб-почту.
Я слишком параноик, или это просто причина, по которой никто не взламывал наш почтовый сервер последние 7 лет? (кроме нечетного спаммерского фишинга на пароли пользователей)
Я думаю, ты слишком параноик. Управляемая пользователем смена пароля позволяет пользователям выбирать пароли, которые они считают запоминающимися, менять пароли, когда они подозревают, что их парень / девушка / мать шпионит за ними и т. Д.
Нет причин для того, чтобы приложение для смены пароля было дырой в безопасности. Отделите к черту пользовательский интерфейс и внутреннюю логику, возможно, напишите простой инструмент CLI для выполнения манипуляций с базой данных и вызова его из веб-приложения. Таким образом, ваш инструмент CLI может выполнять свои собственные проверки работоспособности при каждом полученном запросе.
В некоторых базах данных пользователей / паролей уже есть хорошо протестированные и надежные механизмы смены паролей, например расширенная операция изменения пароля OpenLDAP.
Да, я рекомендую хранить веб-почту на другом хосте. На протяжении многих лет я управлял несколькими крупными сайтами электронной почты, и единственный компромисс, с которым я столкнулся, был когда мне не удалось поддерживать приложение веб-почты в актуальном состоянии. Приложения веб-почты большие, сложные и часто не разрабатываются с учетом требований безопасности.
Вы также можете настроить его так, чтобы пользователям не разрешалось создавать простые пароли. Я предполагаю, что в вашей текущей среде вы меняете пароли для своих пользователей? Если да, то используете ли вы генератор случайных чисел, а затем просто предоставляете им пароль, который он генерирует? Я бы тоже не хотел, чтобы такая ситуация была, имея доступ к их паролям в тот или иной момент, кажется, что это может стать для вас ответственностью.