Страница входа в систему против HTPASSWD - Что более безопасно?
Вопрос
Учитывая простую систему входа (регистрация и вход), какой из двух вариантов более безопасен:
- Использование файлов HTACCESS и HTPASSWD для хранения и аутентификации пользователей
- Использование PHP в Crud и MySQL (или любая другая база данных на самом деле) для хранения информации
Информация о пользователе состоит исключительно из имени пользователя.
Конечно, предполагается наиболее вариант для обоих вариантов: учет MySQL учитываются, пароль-MD5/SHA1/MD5+SHA1/Любые другие средства, зашифрованные и т. Д.
Если вам интересно, в первом случае PHP добавит учетные данные пользователя в файл HTPASSWD. (видеть это Вопрос для примера реализации.)
Решение
Я бы всегда говорил форму входа в систему (под которой я предполагаю, что вы имеете в виду стандартную аутентификацию на основе сеансов).
.htaccess
Аутентификация передает пароль по каждому запросу (конечно, SSL поможет здесь).htaccess
Аутентификация не имеет никакой защиты от ограничения скорости / грубой силы по умолчанию в ApacheВыходить из
.htaccess
аутентификация это сука
Другие советы
В значительной степени нет разницы между двумя способами с точки зрения безопасности полета. Но все опасения Пекки все действительны. Если вы просто хотите использовать HTTP Basic Auth (то есть всплывающее окно), в отличие от формы входа в систему, вы можете сделать это через PHP. by looking for $_SERVER['PHP_AUTH_USER']
И если вы не обнаружите, что отправьте ответ 401 ответ, такой как:
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="MY REALM"');
header('HTTP/1.0 401 Unauthorized');
echo 'Please Contact us if you are having problems logging in';
exit;
} else {
//not their first time through
//check their username and password here
$username = trim($_SERVER['PHP_AUTH_USER']);
$password = trim($_SERVER['PHP_AUTH_PW']);
//do login
}
Таким образом, вы можете выполнить предел скорости/обнаружение грубой силы. Установите сеанс, чтобы пароли не были отправлены с каждым запросом, и облегчает регистрацию пользователя и отслеживая их.