Испугай своего провайдера.. ЧАСТЬ 2

netdog

net @
Автор оригинала: PhpDeveloper
А каким образом хостер может закрыть эту дыру ?

Получается никаким... ?!
....
-- httpd.conf --
php_admin_value open_basedir "/home"
php_admin_value upload_tmp_dir "/home"



И все траблы ... ;)
 

[phpbb]

Guest
Димону огромное спасибо за данную информацию, сделаю все сессии у себя в директории, так как мой провайдер этого у себя сам, не захочет делать.
 

DiMA

php.spb.ru
Команда форума
> Но я не согласен, что при правильном подходе с авторизацией через сессии, её можно хакнуть...

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

> Смотрите: В сессию можно засунуть многое, что невозможно определить, даже имея номер сессии...

Имея номер сессии вражеский скрипт хостера просто прочитает эту сессию и распечатает на экран. 2 раза уже сказал и повторяю третий - хватит детский сад разводить!

Фиксирование IP - ничего не выйдет. Слишком часто он меняется. Ни для кого (возможно, кроме тебя) это не приемлемо. У меня в чате жесткий контроль за IP. Но тем не менее его можно изменить как угодно! В данном вопросе метод чайника "а давайте зафиксирум IP" не прокатит. Это слишком сложный вопрос.

мд5(пароль) админа - бред. Сессии на то и нужны, чтобы не обращаться к базе при каждом запросе страницы. А узнать, каким методом шифруется пароль проще простого - взламываемую программу можно скачать и изучить. Да, можно схитрить и по-умому зашифровать с недоступным для чтения ключем, но 1) таких программ нет 2) придется обращаться к базе, что не приемлемо.

Если хочется узнать, можно ли защитится от:
- идиота админа хостера (дыра в /tmp)
- идиота владельца программы (дыра с получением чужих номеров сессий)
то да - можно.

От первых идиотов защита через настройки сессий (в самом скрипте). И разумеется не использовать хостинг, если проблему нельзя своими силами решить (например там, где safe mode нет).

От вторых намного сложнее. Лично я в своем чате эту проблему решил. Дело в том, что чаты ставят иногда полные чайники, в результате чего появляется свободный доступ к каталогу сессий (через safemode, статус апача, дыры с правами на диске и т.д.). Если сессии доступны на полное чтение - это турба. Но обычно есть доступ только к списку номеров, от чего можно защитится. При краже номера сессии хакор получит сообщение пойти нах, либо сессия будет мгновенно уничтожена (в зависимости от условий). При первом настоящий юзер ничего не заметит. Последнее разумеется скажется на нем - он сразу вылетит, но взлом будет пресечен. Вероятность прикинутся другим юзером, сперев его номер сессии, крайне мала. Это возможно только при перехвате сетевого трафика, чтобы стырить не только номер сессии, а еще несколько ключей авторизации. Кроме того в некоторых местах требуются уникальные параметры браузера: версии плагинов, параметры монитора, временная зона и т.д. Не сочти за грубость, но читать подобный бред после того, как я внедрил максимальное число наворотов для защиты от кражи сессий, мне просто тошно. Если кто знает как еще можно контролировать процесс кражи сессии - с удовольствием обсужу.
 

rudik

Developer
Вобще правильно не только сессии но и все файла, в т.ч. и с аплоада хранить в директории с правами /home/<user>/tmp
 

DiMA

php.spb.ru
Команда форума
Конечно. Но проблема в том, что этот параметр изменить нельзя из .htaccess или ini_set(). Придется обращаться к админу хостинга. А если админ того - вот и проблема. Дело в том, что при минимуме интеллекта этот параметр должен быть ЗАРАНЕЕ настроен. Ведь это так просто - взять и ликвидировать дыру. Но нет, некоторые будут с пеной у рта доказывать, что пусть дыра будет и это лушче, чем дефолто блокирование дыр (если юзер сам сделает из нормального хостига дыры - вот это тогда действительно его проблема).

Вообще по уму надо делать /tmp/user, т.к. TMP не лимирован по размеру, а домашний каталог - да. Кто-то сможет зааплодить 10гиг и от этого кончится место у юзера. Если аплодить мусор в /tmp - то проблему будет у хостера (который ее быстро и ликвидирует).

На самом делел как раз с аплодами проблемы нет, т.к. при safemode нельзя прочитать чужой файл аплода: нет средств узнать имя файла, файл слишком быстро исчезает, да и нет доступа к файлу в принципе. Фича с сессиями тут не прокатит, т.к. файлы сессий обязаны называться на "sess_" и ПХП читать файл с левыми данным (мусором) не будет.
 

ONK

Пассивист PHPСluba
Вот в этом форуме на сколько я помню есть привязка сесии к ip адресу пользователя, + автологин в случае уничтожения сесси, единственное что здесь мне не нравится - это хранение в куках логина и хеша от пароля, помоему это просто неправильно. зато сесии тут хранятся в базе данных, что хотя и тормознее чем в файлах но явно безопаснее.
 

rudik

Developer
Вот интересно было бы продолжить тему по настройке Апача в целом. Ведь многим хостерам говорят что надо делать и они отказываются, а некоторые мечтают о том, чтоб им это сказали. Например я, у меня нет никаких навыков по серьезной настройке апача, зато есть свой сервер на коллокейшине на котором использую хостинг я и десяток моих друзей. Так мне очень интересна тема, связанная с "тюнингом" апача и прочих приколов.
 

rudik

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

confguru

ExAdmin
Команда форума
В этой есть..
Для этого модуль специальный есть.. папки превращает в домены..
Apache для профессионалов (Большая красная библия Apache)
 

Sirius

PHP+MySQL=LOVE
2Dima - хранить админовский пароль в базе, вместе с другими паролями - глупо...

Его храню в подключаемом (include) файле - можно в виде массива для мультиадминства... так что на базу нагрузки нет...

Насчёт ИП - при проверке пользователя, проверяю, его ли ИП в этой сессии, причём md5 - даже достав сессию, декодировать сложно... Если юзер поменяет ИП, он не сможет зайти даже имея сессию, он должен перелогиниться, ещё никто не жаловался на такое "неудобство"
 

[phpbb]

Guest
2Sirius идея прикольная, с проверкой айпи в сессиях, попробую у себя сделать, хотя поидее не банк, но всё равно прикольно :)
 

[phpbb]

Guest
А на счёт проги phpRemoteView, огромное спасибо её создателям, теперь я сам могу у своего провайдера менять себе количество свободного пространства и траффик. Если её возможности рассшырить по поиску, биии было бы круто.
 

Sirius

PHP+MySQL=LOVE
Спасибо, но не я первый придумал... От кого-то эта идея исходила в этом форуме ещё, кажется от Romantik - он даже класс написал (но могу и ошибаться - может и не он)...

А ещё в сессиях можно хранить и проверять и ОС, браузер и т.д. Eё можно тоже того, эмдепятить (md5) для повышения безопасности.
 

Ямерт

The Old One
Рудик, расскажи поподробней чем mod_rewrite плох по соображениям безопасности. Интересно узнать.
 

ONK

Пассивист PHPСluba
При наличии рук и головы ничем он не плох.
 

leosha

Старожил PHPCLub
>Конечно. Но проблема в том, что этот параметр изменить >нельзя из .htaccess или ini_set().

Не понял. Ты про upload_tmp_dir ? А почему нельзя изменить тогда из .htaccess?
 

DiMA

php.spb.ru
Команда форума
> А почему нельзя изменить тогда из .htaccess?

Ну откуда я знаю. Попробуй измени и сообщи о эксперименте. На сколько я помню - нельзя.
 

LaYt

Guest
кто - нибуть измерял рост производительности работы сесий при переходе на использование БД?

вопрос спорный, что быстрее а что медленее, нужны конкретные замеры и факты.

по поводу хранения в /tmp - самое верное решение - safemode на публичных хостингах... если его нет там - доверять такому хостеру чтото серьезное я не буду. Уж лучше брать либо колакейшн либо искать хостера с нормальным админом.
 

KR

alive in new life
а кто мешает сделать session_save_path(куда_хочется_и_можется); %))
 
Сверху