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