0
<< предыдущая заметкаследующая заметка >>
27 ноября 2012
Сменил систему авторизации админа в движке

Вниманию владельцев движков! При очередном апгрейде движок собьется, и надо руками будет скопировать site_module/INSTALL.php. Уж извините за эту багу, все никак руки не дойдут сделать по-человечески защиту от такого сбоя, когда половина файлов обновилась, а половина еще нет.

Теперь про авторизацию админа. Исторически авторизация админа движка хранилась в отдельной куке. Так было проще и надежнее: что бы ни происходило в движке, админ оставался админом.

Но теперь у нас мощнейшая система логинов (особенно в многопользовательском режиме движка), которая привязана к IP (но автоматически самовосстанавливается при его смене) и поэтому хитроумно защищена от угонов. А вот админская кука наоборот: хранится в видимой области кук и представляет угрозу в многопользовательском движке.

Поэтому теперь админский доступ включается через систему логинов. В config.php существует некая переменная, в которой перечислены номера unic пользователей, назначенных админами (их может быть не один). Вписывать туда ничего руками не надо, для этого в /install теперь есть специальная кнопка «ADD ADMINS».

Короче. У нас теперь админских авторизации как бы две. Одна — старая для особых аварийных случаев, она пригодится только в /install и только в трех эпизодах:
1. Если пока нет ни одного аккаунта, объявленного админом. Тогда надо зайти в /install, набрать свой админский пароль, залогиниться, добавить в админы нынешний аккаунт и желательно после этого там же в /install кликнуть 'logout', потому что этот вариант авторизации вам больше не понадобится. А можете и не кликать — все равно старая админская авторизация теперь привязана к IP, и даже если вы перевели движок в многопользовтаельский, и у вас там хостится куча подозрительных личностей, и каждый пишет какие-то скрипты, то все равно они ничего не сделают.

2. Также чтобы сменить админский пароль вас попросят указать старый.

3. Также чтобы назначить кому-то (хоть себе) админские полномочия вас также попросят ввести админский пароль.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Windows Opera
0
0
wwolf
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Ссылка на файл некорректна. Путь на текущую страницу встрял... :)
Linux Firefox
 Москва
0
0
Леонит Каганофф
Ага, http:// не вписалось, исправил.
Windows Firefox
 Санкт-Петербург
0
0
cats.shadow
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
вот, что как ссылка в RSS выдается:http://lleo.me/blog/lleo.me/blog/install?site_module/INSTALL[...]
P.S. и после логина роботом считает почему-то...


Linux Firefox
 Москва
0
0
Леонит Каганофф
Исправил, http:// почему-то не скопипастилось.

Но вообще в движке эта ссылка стандартна: любой файл движка из системных папок движка (кроме разве что запрещенных) движок отдает по команде install?путь
Windows Firefox
 Санкт-Петербург
0
0
cats. shadow
Но хочется же просто кликнуть, когда видишь активную ссылку полезную :)

ЗЫ. Почистил куки - опять движок за юзера считать начал.
Linux Firefox
 Москва
0
0
Леонит Каганофф
Не очень понял:
1. Какой именно движок? У меня на сайте их аж три, а может речь вообще о вашем?
2. Зачем вообще чистить куки? В движке есть "залогиниться" и "разлогиниться".

Куки - вообще лишь одна из частей авторизации, причем необязательная: думаю, чуть позже движок сможет работать и держать авторизацию даже при отключенных куках. Просто пока это не нужно, но всё для этого технически есть.
Windows Firefox
 Санкт-Петербург
0
0
cats. shadow
1. /blog
2. Какой-то странный сбой был (см. скриншот комментом выше). В левой колонке отображался правильный пользователь, но при попытке оставить коммент отображалась форма как для неавторизованного пользователя (с капчей, пустыми полями логин/емэйл...). При повторном логине - процесс проходил на вид успешно (мелькало сообщение о том, что пользователь восстановлен), но в в форме коммента при попытке отправить возникала надпись про цифры (при отсутствии капчи) и было не заполенено поле емэйл. Коммент (со скриншотом) был отправлен следующим образом: заполнено поле логин согласно тому, что отображалось в левой колонке сайта (unic).
После того, как были очищены куки, относящиеся к lleo.me, в броузере нормальное функционирование восстановилось. Разлогниться/залогиниться кнопками не помогало.
Linux Firefox
 Москва
0
0
Леонит Каганофф
Задумался. Что бы это могло быть?
Windows Firefox
 Санкт-Петербург
0
0
cats. shadow
Вот и я не понял. Следующий раз буду куки бэкапить, чтоб картину происходящего перепроверить можно было детально.
Linux Firefox
 Москва
0
0
Леонит Каганофф
Спасибо, это очень важно.

Потому что я мысленно уже считаю авторизацию допиленной окончательно (не считая глюков в совсем уж старых браузерах, где нет режима message, там еще повозиться надо).

Сегодня проверил на уязвимость еще один момент - да нет, все предусмотрено.

Короче, движок полностью готов к использованию как многопользовательский сервер. Осталось мелкие глюки подчесать, чтоб открылись все возможности.
Linux Firefox
 Москва
0
0
Леонит Каганофф
ПОГОРЯЧИЛСЯ. Еще есть глюк в доменах. То есть, авторизация пока работает только в центральном домене, когда вызываешь ее в user.lleo.me, там есть глючок.
Linux Opera
0
0
Mike Novikoff
> в форме коммента при попытке отправить возникала надпись про цифры (при отсутствии капчи)

Пару дней назад было такое же. Здесь же, в /blog.
Мне показалось, что это была смена моего ip (динамического) во время написания коммента (между открытием формы и попыткой отправки). Потому что помогла перезагрузка страницы, в это время как раз «мелькнуло сообщение, что пользователь восстановлен». После этого новый коммент отправился нормально, все последующие тоже.
Насчёт причин не уверен, только предположение.
Windows Firefox
 Санкт-Петербург
0
0
undefined
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
offtopic: Verisign при авторизации по openid отдает в ответ поля
[identity] => http://cats-shadow.pip.verisignlabs.com/
[profile] => http://cats-shadow.cats-home.net/

Соответственно, в карточке пользователя (и в /blog, и /dnevnik) отображается то, что в поле identity (т.е. id с сервера, которому делегируется авторизация) . Можно ли изменить алгоритм авторизации так, чтобы при наличии непустого поля profile в качестве id пользователя использовалось его значение, а при отсутствии - identity?
Linux Firefox
 Москва
0
0
Леонит Каганофф
О... Если б я чего понимал в этих форматах...
Там и так немыслимая ибала с identity, real_identity (тэг, придуманный примерно для тех же целей в uLogin по моей личной просьбе), и теперь еще появился некий загадочный profile... Вставил такую заглушку посерединке:

if(empty($j['identity'])) idie("Identity fatal error!");

// по просьбе cats.shadow
if(!empty($j['profile'])&&empty($j['real_identity'])) $j['real_identity']=$j['profile'];

if(!empty($j['real_identity'])) { $a=strlen($j['real_identity']); $b=strlen($j['identity']);
if(substr($j['real_identity'],0,min($a,$b))!=substr($j['identity'],0,min($a,$b)))
$openid=$j['real_identity']; else $openid=($a>$b?$j['real_identity']:$j['identity']);
} else $openid=$j['identity'];

Работает в движке /blog, проверь и отпишись. В /dnevnik пока не переносил.
Windows Firefox
 Санкт-Петербург
0
0
Кошак
Ура! Заработало! :)
Теперь правильный ID и favicon отображаются.
[s]Осталось загрузить юзерпик.[s] :)

P.S. логинился через OpenID через ulogin. Loginza не работает с Verisign.
Windows Firefox
 Санкт-Петербург
0
0
Кошак
P.S. offtopic:
Еще бы шаблон фидошного конфига? И какие таблицы в базе нужны?

P.P.S. При редактировании уже сохраненного коммента теги оформления (bb-code) не распознаются.
Nokia-E90 Safari
 Москва
0
0
Леонит Каганофф
а разве в пакете ФИДО нет шаблона конфига? И разве он не создает таблицы сам при первом запуске?
Windows Firefox
 Санкт-Петербург
0
0
Кошак
Только areas.tmpl и links.tmpl; config.tmpl не обнаружен. Пробовал взять конфиг напрямую из phfito - не подходит - таблицы не создаются.

P.S. при прямом запросе: http://lleo.me/blog/install?fido/conf/config.tmpl - ошибка: ERROR: Veto
Linux Firefox
 Москва
0
0
Леонит Каганофф
Точно. Он же видит, что -----------/config запрещен, значит и -----------/configЧТО-ТО соответственно тоже.

Изменил пакеты, переименовал в tmpl.config
Ну заодно еще в корне nodelist и bink были запрещены.

всего комментариев: 25

<< предыдущая заметка следующая заметка >>