> Но я не согласен, что при правильном подходе с авторизацией через сессии, её можно хакнуть...
Для начала. Я не знаю ни одну программу, кроме своего чата, которая что-то проверяет. Если есть - очень хорошо, но не нужно мне ничего доказывать. Я сказал только про себя.
> Смотрите: В сессию можно засунуть многое, что невозможно определить, даже имея номер сессии...
Имея номер сессии вражеский скрипт хостера просто прочитает эту сессию и распечатает на экран. 2 раза уже сказал и повторяю третий - хватит детский сад разводить!
Фиксирование IP - ничего не выйдет. Слишком часто он меняется. Ни для кого (возможно, кроме тебя) это не приемлемо. У меня в чате жесткий контроль за IP. Но тем не менее его можно изменить как угодно! В данном вопросе метод чайника "а давайте зафиксирум IP" не прокатит. Это слишком сложный вопрос.
мд5(пароль) админа - бред. Сессии на то и нужны, чтобы не обращаться к базе при каждом запросе страницы. А узнать, каким методом шифруется пароль проще простого - взламываемую программу можно скачать и изучить. Да, можно схитрить и по-умому зашифровать с недоступным для чтения ключем, но 1) таких программ нет 2) придется обращаться к базе, что не приемлемо.
Если хочется узнать, можно ли защитится от:
- идиота админа хостера (дыра в /tmp)
- идиота владельца программы (дыра с получением чужих номеров сессий)
то да - можно.
От первых идиотов защита через настройки сессий (в самом скрипте). И разумеется не использовать хостинг, если проблему нельзя своими силами решить (например там, где safe mode нет).
От вторых намного сложнее. Лично я в своем чате эту проблему решил. Дело в том, что чаты ставят иногда полные чайники, в результате чего появляется свободный доступ к каталогу сессий (через safemode, статус апача, дыры с правами на диске и т.д.). Если сессии доступны на полное чтение - это турба. Но обычно есть доступ только к списку номеров, от чего можно защитится. При краже номера сессии хакор получит сообщение пойти нах, либо сессия будет мгновенно уничтожена (в зависимости от условий). При первом настоящий юзер ничего не заметит. Последнее разумеется скажется на нем - он сразу вылетит, но взлом будет пресечен. Вероятность прикинутся другим юзером, сперев его номер сессии, крайне мала. Это возможно только при перехвате сетевого трафика, чтобы стырить не только номер сессии, а еще несколько ключей авторизации. Кроме того в некоторых местах требуются уникальные параметры браузера: версии плагинов, параметры монитора, временная зона и т.д. Не сочти за грубость, но читать подобный бред после того, как я внедрил максимальное число наворотов для защиты от кражи сессий, мне просто тошно. Если кто знает как еще можно контролировать процесс кражи сессии - с удовольствием обсужу.