Идеи: Немного о безопасности

Список разделов Общие разделы О phpBBex

Описание: Обсуждение phpBBex в целом, всё что не подходит в другие разделы.
Модератор: Поддержка

Сообщение #1 Alexandr_ » 07.11.2013, 15:51

Лично я всегда безопасность сайта ставил в приоритет всем остальным показателям.

С недавних пор:
Я на своем сайте поставил возможность авторизации по ключу из $_SERVER["HTTP_USER_AGENT"]
Причем авторизация как бы проходит до момента установки cookies. А дальше страница ошибки и выйти можно, лишь удалить куки вручную.

Как это работает:
На всех страницах для пользователей определённых групп подгружается некий файл в котором описаны правила доступа. Причем можно указать правила отдельным пользователям и группам.

Для наглядности, часть лога:
Код: Выделить всё
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:12.0) Gecko/20093109 Firefox/12.0"

Я изменил Gecko/20093109 с виду всё нормально, движок/дата, но это только на первый взгляд, данная строка уникальна.

Собственно сам код.
Код: Выделить всё
if (strpos($user_agent, "20093109") == false)
die('");
20103109 это и есть тот идентификатор который я прописываю в своем браузере.

можно комбинировать || с языком браузера по умолчанию. который можно поставить в настройках своего браузера для входа под группой администратора, модератора. Разные настройки можно применять разным группам и пользователям.
проверка языка:
Код: Выделить всё
if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 5) !== "ru-ru" && substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) !== "uk")die('");

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

В идеале браузер для своих сайтов лучше запускать с флешки.

Данную реализацию я сделал на своем сайте не на phpbb. Работает на 100%.
Alexandr_
Автор темы, Бывалый
Репутация: 5
С нами: 8 лет 8 месяцев

Сообщение #2 Sumanai » 07.11.2013, 15:55

Оригинально конечно, но такая уникальная строка будет выделяться при посещении других сайтов. То есть получается, что нужно иметь отдельный браузер для захода админом, например.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Аватара
Репутация: 1677
С нами: 9 лет 5 месяцев

Сообщение #3 Alexandr_ » 07.11.2013, 15:58

Sumanai:То есть получается, что нужно иметь отдельный браузер для захода админом, например
В идеале браузер для своих сайтов лучше запускать с флешки.
Это лишь часть комплекса мер.

Добавлено спустя 2 минуты 39 секунд:
А вот с языком по умолчанию будут проблемы, если я использую фарси на пример )))

К стати такого рода фильтр (определяя масив из разрешенных языков) можно юзать и на страницу авторизации.

Добавлено спустя 14 минут 30 секунд:
Sumanai:Оригинально конечно, но такая уникальная строка будет выделяться при посещении других сайтов.

В конечном этапе в логах будет:
Код: Выделить всё
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:12.0) Gecko/20093109 Firefox/12.0"

Чем же оно будет выделяться?
Alexandr_
Автор темы, Бывалый
Репутация: 5
С нами: 8 лет 8 месяцев

Сообщение #4 Sumanai » 07.11.2013, 16:23

Alexandr_:В конечном этапе в логах будет:

Да ну вы сами написали- фейковой датой. Думаю диапазон дат весьма ограничен. Точнее даже у меня (фрагмент)
Код: Выделить всё
WOW64; rv:25.0) Gecko/20100101 Firefox/25.0
И строка 20100101 давно не менялась. Хотя может это я что так настроил- профиль старый.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Аватара
Репутация: 1677
С нами: 9 лет 5 месяцев

Сообщение #5 Alexandr_ » 07.11.2013, 16:47

Ситуация:
взломщик получил все нужные пароли а при загрузки страницы получает ошибку вэб сервера. Или фейковую панель управления.
Так то на месте взломщика куча вопросов сразу появиться, и мысли, почему данные на сервер не отправляет.
И вообще, это же надо словить именно меня в логах и применить этот заветный идентификатор, который, к стати, без поддержки нужного языка не сработает.
плюс ко всему, есть ещё доступ по ip по header авторизации. В принципе, в моём случае идентификация всё равно будет не возможна. Из ряда принятых мер безопасности.
Alexandr_
Автор темы, Бывалый
Репутация: 5
С нами: 8 лет 8 месяцев

Сообщение #6 Alexandr_ » 08.11.2013, 18:37

Продолжаю тему
В общем про дополнительный браузер написано было наспех. есть User-Agent Switcher он идет как дополнение, ко всем популярным браузерам: opera, mozilla, Google chrome, Safari ...

Он очень простой и в установке, и в настройках.
Просто при заходе на сайт включаете нужную вам закладку.
Снимок-1.png

Снимок.png
Снимок.png (51.39 КБ) Просмотров: 20032


как вариант:
Я пошел немного дальше, теперь каждый пользователь может в своем профиле добавить свой ключ. Для этого в профиле я создал дополнительное поле и линк(pop-up) с небольшой инструкцией и ссылками на установку плагина, к тому, или иному браузеру, скрипт определяет браузер пользователя и выдает нужные ссылки автоматом. Всё что нужно пользователю, это прописать идентификатор в своём профиле, и добавить его в User-Agent Switcher. также в профиле, можно указать в выпадающем списке и язык браузера, для большей надежности, так как проверка будет ещё и по языку.

Как это работает сейчас:
Я зашел на phpbbex.com с настройками дефолтного юзерагента, потом зашел на свой сайт, под админом естественно, прохожу авторизацию и получаю ошибку так как юзерагент у меня по умолчанию. Далее я легким движением мыши переключаю (как показано на картинке) на нужную мне настройку агента и обновляю браузер. После чего все страницы сайта доступны только моему браузеру без исключения.

В данном примере, работа с базой данных, но можно и через инклюд в config файле. Для доступа отдельным группам по level. В общем тут вариантов комбинаций очень много.

Минусы: если забыл идентификатор после пере установки системы, браузера, не сделав бэкап. Войти не получиться.
Решение данной проблемы есть и не одно. Описывать не буду так как для себя сам решаю какой лучше выбрать.

В итоге, получается очень надежная и простая система идентификации.
Пофигу:
Фишинг
Брут
Не паримся о сложности пароля к сайту
Можно без привязки по ip

Боимся:
Перехват трафика (снифферы)
Решение: ssl решает проблему
Данные с браузера на прямую
Решение: Ставим мастер пароль, как вариант, такой же как и сам ключ :wink: (патчим вовремя)
Alexandr_
Автор темы, Бывалый
Репутация: 5
С нами: 8 лет 8 месяцев

Сообщение #7 Test » 16.04.2015, 11:33

zeeshan002 - тупой спам бот!!!!!!!!!!!!!!!!
А защита от спама не работает!!!
Test
Гость


Вернуться в О phpBBex