Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Безопасность сессий 
V
    Опции темы
supercelt
Дата 10.10.2008, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Я делаю на сайте зону для админа. При авторизации использую сессию вот так:
Код

if($login=='login' and $password=='pass')// Эта строчка просто для примера
{
$_SESSION['admin']=$login;
}


Проверка доступа к зоне

Код

if(isset($_SESSION['admin']))
{
echo 'Enter';
}


Скажите, на сколько это безопасно?. Может ли злоумышленник как-то по другому создать сессию на сайте, не из скрипта?
PM   Вверх
Валерия
Дата 10.10.2008, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 10.3.2007

Репутация: 3
Всего: 8



Вполне безопасно.
PM MAIL   Вверх
ksnk
Дата 10.10.2008, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



В хакере вычитал забавный способ взлома
в куку '_SERVER[admin]' записать значение 'admin'. Тогда при включенном register_globals переменная $_SERVER['admin'] будет такой как надо...

Метод авторизации не такой уж и плохой, вот только следить за правильными настройками и откуда какие переменные приходят нужно все равно smile




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
supercelt
Дата 10.10.2008, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



спасибо)
PM   Вверх
skyboy
Дата 10.10.2008, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(supercelt @  10.10.2008,  17:13 Найти цитируемый пост)
Скажите, на сколько это безопасно?

механизхм сессий не абсолютно безопасен.
самый реальный, как на меня, случай состоит в эксплуатации потенциальной уязвимости: в случае использования VDS(виртуального выделенного сервера) по умолчанию сессии хранятся в одной общей директории. и если создать на том же физическом сервере сайт, то можно будет просматривать содержимое переменных сессий. а проанализировав - подделать. борьба: либо менять механизм сессий целиком(например, запихивать в БД), либо указывать иной каталог для хранения сессий, отличный от умолчального(если есть доступ к файлам конфигурации PHP, что в случае использования VDS очень-очень маловероятно; но возможно).
кроме того, возможно подделать идетификатор существующей сесиий(на стороне клиента достаточно потереть куки и добавить соответствующий PHPSESSID в адресную строку или отредактировать содержимое куки) на реально используемый. идентификатор реально используемой сессии можно утянуть либо физически(специально склепанный троян или доступ к компу админа), либо эксплуатируя XSS(неэкранированный javascript утянет содержимое кук и отправит их злодею). борьба потенциально не возможно. разве что пытаться отличить разных пользователей по совокупности заголовков.
на форуме была где-то большая тема, но никак не могу найти.

Добавлено через 1 минуту и 27 секунд
Цитата(skyboy @  10.10.2008,  18:41 Найти цитируемый пост)
подделать идетификатор существующей сесиий {....} на реально используемый

имелось в виду, что можно изменить идентификатор сессии на реально существующий.

PM MAIL   Вверх
DizelGenerator
Дата 10.10.2008, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 15.6.2008

Репутация: 1
Всего: 1



Способ по подделке идентификатора сессии админа имеет серьезное ограничение - надо успеть, пока сессия админа не отвалилась по таймауту.
PM MAIL   Вверх
skyboy
Дата 10.10.2008, 22:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(DizelGenerator @  10.10.2008,  21:18 Найти цитируемый пост)
Способ по подделке идентификатора сессии админа имеет серьезное ограничение

вообще говоря, считаю, что подобное маловероятно. только если намеренное "нападение" на сайт. 
в любом случае, таймаут навряд ли меньше 15 минут - получаса.а XSS сразу выдаст куку. но это так, скорее теория.
PM MAIL   Вверх
ksnk
Дата 10.10.2008, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



skyboy
Цитата

специально склепанный троян или доступ к компу админа

если сервер уже заражен - подделывать сессию админа как-то уже и незачем, хакер может этим заняться только из любви к искусству.    smile 
Более реальный способ "потерять сессию" - посидеть в интернет-кафе. Центральный компьютер кафе просто обязан сканировать трафик, а добавить пару интересных фильтров-правил к антиспамным правилам кафешного файрволла совсем несложно...
Впрочем, с таким-же подозрением можно относиться к собственному провайдеру, провайдеру собственного провайдера, хостеру сайта и остальному интерент-сообществу  smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
skyboy
Дата 10.10.2008, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



ksnk, естественно. однако, вполне вероятен заказной взлом, если речь идет о каком-то крупном раскрученном проекте, который конкуренты видели в гробу. в этом случае возможно всякое  smile 
PM MAIL   Вверх
sTa1kEr
Дата 10.10.2008, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(skyboy @  10.10.2008,  20:41 Найти цитируемый пост)
по умолчанию сессии хранятся в одной общей директории. и если создать на том же физическом сервере сайт, то можно будет просматривать содержимое переменных сессий

Если это возможно, то это уязвимость сервера, а не механизма сессий, т.к. файлы в /tmp должны всегда создавать с правами по маске 077, по этому никакой другой пользователь не сможет их прочитать. И соответственно сам скрипт так же не должен иметь доступа к /tmp.
PM MAIL   Вверх
skyboy
Дата 11.10.2008, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(sTa1kEr @  10.10.2008,  22:39 Найти цитируемый пост)
маске 077

может, 0600? разве "0777" - это не "доступ всем и вся"? кроме того, мне не совсем понятен механизм VDS. разве Apache не запущен в единственном экземпляре(а значит, и модуль apache - php)? от имени одного определенного юзера?

Добавлено через 1 минуту и 57 секунд
Цитата(sTa1kEr @  10.10.2008,  22:39 Найти цитируемый пост)
И соответственно сам скрипт так же не должен иметь доступа к /tmp. 

если PHP(откедова у самого скрипта какие бы то ни было права?) не будет иметь доступ к папке с сесионными файлами(и к загруженным на сервер методом POST файлам), то кто будет с этими файлами работать? или я неверно тебя понял?
PM MAIL   Вверх
sTa1kEr
Дата 11.10.2008, 01:41 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(skyboy @  11.10.2008,  01:34 Найти цитируемый пост)
может, 0600? разве "0777" - это не "доступ всем и вся"?

Не права доступа, а umask на директорию /tmp. Грубо говоря, при создании файлов в /tmp будут сниматся все быты для group и other.

Цитата(skyboy @  11.10.2008,  01:34 Найти цитируемый пост)
разве Apache не запущен в единственном экземпляре(а значит, и модуль apache - php)? от имени одного определенного юзера?

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

Цитата(skyboy @  11.10.2008,  01:34 Найти цитируемый пост)
если PHP(откедова у самого скрипта какие бы то ни было права?) не будет иметь доступ к папке с сесионными файлами(и к загруженным на сервер методом POST файлам), то кто будет с этими файлами работать? или я неверно тебя понял? 

Если PHP работает через suEXEC (как и работают правильные хостеры), то без разницы, каждый пользователь будет иметь доступ только к своим файлам. Иначе см. выше.

Цитата(skyboy @  11.10.2008,  01:34 Найти цитируемый пост)
механизм VDS

Наверное все-таки ты имел ввиду не VDS, а виртуальный хостинг. VDS, если не ошибаюсь - это как раз виртуальных сервер, где предоставляется рут-доступ.
PM MAIL   Вверх
skyboy
Дата 11.10.2008, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



sTa1kEr, спасибо. зря я людей дезой запугивал smile

PM MAIL   Вверх
gta4kv
Дата 11.10.2008, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата

(если есть доступ к файлам конфигурации PHP, что в случае использования VDS очень-очень маловероятно; но возможно).

спасибо, посмеялся smile

Добавлено через 17 секунд
а, блин, смотрю сталкер уже всё написал, жаль smile
PM MAIL   Вверх
Валерия
Дата 12.10.2008, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 10.3.2007

Репутация: 3
Всего: 8



Что бы сессию не могли подделать, нужно делать привязку по айпи)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1281 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.