Почему авторизация на .htaccess небезопасна?

Leonid

PHP? нет, не слышал...
Почему авторизация на .htaccess небезопасна?

Я делаю авторизацию в админке следующим образом - в папку /admin/ кидаю файл .htaccess с такими стрками:

AuthType Basic
AuthName SiteView
AuthUserFile /home/..путь к файлу с паролями../mypasswdfile
Require valid-user

Т.е. при входе вылезет окошко для ввода логина и пароля.
Если юзер вводит правильный логин и пароль, то админка работает (Из базы определяются права пользователя, куда его пускать, куда нет...)

Но говорят, что такой способ авторизации небезопасен. Может кто знает более безопасноый способ?
 

MiRacLe

просто Чудо
небезопасен в том смысле, что пара логин-пароль передаётся каждый раз при запросе любого ресурса из этой папки и "шифрование" этой пары крайне слабое (base64 если не ошибаюсь) - т.е. "перехватить" эту пару гораздо легче, чем в случае "правильной сессионной авторизации" - когда эта пара передаётся единожды. В остальном вполне нормальная схема(главное чтобы файл с паролями был недоступен для чтения скриптам или лучше находился вне DOCUMENT_ROOT)
 

Фанат

oncle terrible
Команда форума
перехватить" эту пару гораздо легче, чем в случае "правильной сессионной авторизации" - когда эта пара передаётся единожды.
глупость какая.
если можно поймать 401, то сессионный ловится точно так же.

другое дело, что при передаче логина с паролем обычным запросом, пароль можно и вовсе не передавать, а делать хэш яваскриптом.
 

Mosik

Новичок
Фанат
глупость какая.
если можно поймать 401, то сессионный ловится точно так же.
согласен

другое дело, что при передаче логина с паролем обычным запросом, пароль можно и вовсе не передавать, а делать хэш яваскриптом.
тут не понял
можно подробнее?
 

Сергей123

Новичок
Mosik, если JavaScript есть, то перед submit'ом пароль ним хэшится. Этого всё ещё достаточно, чтобы авторизировать, но пароль не шлётся в открытом виде.
 

Фанат

oncle terrible
Команда форума
обсуждалось много раз.
сервер в форму кладёт случайное слово, которое пишется в сессию.
яваскрипт прибавляет к этому слову пароль и делает мд5 из этого и отсылает серверу
сервер делает то же самое, сравнивает и пускает.

примерно так работает и Digest HTTP авторизация, так что, и не "на .htaccess " можно написать безопасную авторизацию
 

MiRacLe

просто Чудо
Фанат
про "легче" я имел ввиду, именно то, что эта пресловутая "пара" передаётся при каждом запросе - не обязательно надо ловить "401", про "правильную сессионную" имел ввиду именно то, что передавать пароль в таком случае "необязательно"(как раз тот случай, когда пароль хешируется на стороне клиента)
 

Leonid

PHP? нет, не слышал...
Я понимаю, спецы начали обсуждать проблему, но можно немного ясности?

небезопасен в том смысле, что пара логин-пароль передаётся каждый раз при запросе любого ресурса из этой папки
Т.е. когда я ввожу логин и пароль, кто-то каким-то образом может их перехватить? А как?

т.е. для авторизации нужно создать свою собственную форму, шифровать пароль ява-скриптом при субмите. А как осуществлять проверку логина и пароля в таком случае? Вручную, или что-то в htaccess прописать?
 

Фанат

oncle terrible
Команда форума
Лёня.
Всё уже написали. Читай дальше.

И вообще - не парься про перехваты и прочее.
ты знаешь анекдот про неуловимого Джо?
 

Leonid

PHP? нет, не слышал...
Знаю я анекдот. Но когда делаешь десятки сайтов надо думать о безопасности. А не о том, что "кому этот сайт нужен..." Конечно, сайт васи пупкина никому не нужен, но информационный портал города, такой как например http://uglich.ru кому-то и интересно поломать.
 

Leonid

PHP? нет, не слышал...
А что это? Ты имеешь в виду прямой доступ к БД по SSL?
 

Фанат

oncle terrible
Команда форума
ты сделал много сайтов и не слышал об SSL?
http://en.wikipedia.org/wiki/Secure_Sockets_Layer
 

crocodile2u

http://vbolshov.org.ru
Уйёо.......

Сильно сказано. Вот только кто здесь говорил про какую-то БД?

Leonid
Не парься. Оставь на время вопросы безопасности - лучше еще перечитай вышеупомянутый анекдот.
 
Сверху