Я планирую сделать базу данных проекта Rails общедоступной для скачивания. Эта база данных содержит таблицу пользователей Authlogic с полями crypted_password и password_salt. Насколько надежно хранятся эти пароли... безопасно ли делать их общедоступными таким образом? Или мне следует подумать о реализации другой системы аутентификации, такой как OpenID, которая не хранит пароли в базе данных?
Насколько безопасны пароли Authlogic?
Ответы (4)
Определенно небезопасно делиться хешированными паролями, возможно, вам следует попробовать разделить свою модель пользователя на что-то вроде UserProfile (общедоступная информация пользователя - псевдоним, местоположение и т. д.) и UserAccount, которые вы могли бы использовать для аутентификации. Тогда вы могли бы, вероятно, поделиться всем, кроме учетных записей. Или, возможно, рассмотрите возможность реализации какого-либо API, который другие могли бы использовать для извлечения данных с вашего сайта вместо публикации всей базы данных.
Это определенно не очень хорошая идея, независимо от уровня безопасности и шифрования. Даже если бы это было совершенно безопасно, как минимум, вы будете раскрывать пользовательские данные, что не похоже на то, что ваши пользователи могут быть довольны. А что, если он не является абсолютно безопасным (гораздо более вероятным) — предположим, скажем, в authlogic есть критическая уязвимость, которая еще не обнаружена?
Береженого Бог бережет. Делитесь остальным, если хотите, но держите таблицу пользователей и связанные с ней данные в секрете!
Я бы посоветовал вам удалить все поля, связанные с аутентификацией пользователя (электронная почта, пароли, соли и ключи, URL-адреса открытых идентификаторов) из любых баз данных, которыми вы планируете поделиться, иначе вы можете оказаться в мире боли, когда кто-то злонамеренный завладеет им.
Я думаю, было бы разумно не включать таблицу пользователей в общедоступную базу данных независимо от используемой системы аутентификации. Одним из преимуществ использования authlogic является то, что вы можете безболезненно реализовать несколько способов аутентификации. Неважно, используете ли вы традиционную регистрацию, OAuth, OpenID или RPX, все эти методы способны извлекать личную информацию за пределами пароля в вашу пользовательскую модель. Пользователи, вероятно, не будут довольны тем, что информация о дате рождения, имени, фамилии и местоположении будет обнародована.