Авторизация в блоголёте
09.05.2009Сейчас в блоголёте принята базовая авторизация. Начав разбираться с библиотеками OpenID, выяснил, что более безопасно использовать авторизацию дайджестом, то бишь md5. Базовая авторизация означает, что пароль передается практически в не зашифрованном виде - ну не считать же шифрованием base64. Более защищенным методом авторизации является digest - для конечного пользователя не будет никакой разницы - всплывет одно и тоже окошко ввода пароля. При авторизации дайджестом отсылается браузеру случайная строка сгенерированная сервером, по несложному алгоритму браузер вычисляет md5 от пароля этой строки и еще кое чего и это отсылает обратно серверу. Таким образом легко отсекаются злодеи, пытающиеся перебором подобрать пароль - случайную строку сервер может отсылать каждый раз при открытии страницы, а ее подобрать практически тоже невозможно.
Я думаю сменить тип авторизации с базовой на дайджестом md5. Плюсы за смену алгоритма - более высокая безопасность в админке. Минусы - будет сброшен текущий пароль (даже сейчас реально блоголёт не хранит пароль, а лишь его md5), возможно придется добавить новый параметр - название окошка (но это под вопросом), и главное - это не увеличит безопасность блога в целом, так как во всех xmlrpc апи пароль передается обычным текстом. Либо для xmlrpc делать свой пароль. Реально xmlrpc известных апи (кроме livejournal) страдают отсутствием безопасности. Апи, понятное дело, что я не придумывал и поменять не смогу.
Еще один момент для авторизации хешем- хранение временной строки для авторизации. Можно хранить в сессии, либо в данных какого то класса блоголёта. Сессии и куки в блоголёте практически не используются. Куки используются для облегчения комментирования - автоматом заполняются все поля. Либо вовсе обойтись без случайной строки в авторизации, но тогда падает эффективность такой авторизации. Решение о временной, случайно сгенерированной, строке еще не принято. Я в раздумьях.
← Ранее Проверка списка друзей
Позже Установка блоголёта →
Комментарии (11) на запись “Авторизация в блоголёте”
Оставить комментарий
Вы как написали о злодеях, пытающихся перебором подобрать пароль, мне аж не по себе стало. Стал проверят логии сайтов. А там как раз периодически встречаются запросы а-ля cron=gdnrgkgknitrjgtr43, причём я точно знаю, что это не мой пароль.
Это те самые злоумышленники? Или зря беспокоюсь?
Сейчас тестировал - будет работатьи режиме cgi и sfe_mode - все предусмотрено, но без кук, отчего то я куки недолюбливаю.
Для крона отдельный, независимый пароль, он в принципе ни на что не влияет, просто чтоб со стороны часто не дергали крон. Одновремено все равно запускается только один экземпляр крона, остальные попытки отваливаются. Это не злодеии.
Уже придумал, как перевести на авторизацию дайджестом без сброса пароля - будет сохранен старый и будет нпо новому авторизоываться, для конечного пользователя ничего не поменяется, разве что раз в час сделаю повторный ввод пароля: через час просто еще раз появиться окошко с просьбой ввести пароль.
залил по фтп, проставил права, авторизуюсь- постоянный релогин, отменяю - 401 неавторизован. файл htaccess поправил авторизацию для PHP в режиме CGI, то есть заменил строку 3 другими как написано в ридми, хостер сказал вот что...цитирую..
...по идее это должно работать когда пхп работает в режиме cgi...и все что оно делает - устанавливает переменную окружения, а как скрипт работает с этой переменной - дело разраба...странно, там совсем не обрабатываются $PHP_AUTH_USER...видимо работать должно только на денвере ))...двиг не расчитан работу с пхп только в режиме cgi...тьфу... наоборот, рассчитан только на cgi...
вот так вот... где копать? хостинг другой найти наверн...
напишите ему что проверять нужно еще и переменную $_GET['HTTP_AUTHORIZATION'] там дайджест лежит