Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Защита и доступ $_SESSION php (https://javascript.ru/forum/server/49431-zashhita-i-dostup-%24_session-php.html)

vabg 13.08.2014 06:09

Защита и доступ $_SESSION php
 
Здравствуйте.

В общих чертах:

Для авторизации на сайте использую $_SESSION["user"]

Соответсвенно проверка

If(!isset($_SESSION["user"]){header('location: login.php')}

Стандартная ошибка в том, что если пользователь наберет в адресной строке index.php?user=hacker то он попадет в защищенную зону, если я все верно понимаю.

И... вообщем-то так и произошло. Злоумышленник попал в админ панель на моем сайте и поорудовал там вдоволь.

Хочу это исправить, но вот казус. Решил проверить как он это сделал и... вписываем в адресной строке этот параметр и ничего, все также просит авторизироваться. Почему?

Я пробовал по разному и получается все время одно и то же. Выходит что я в свою админ панель могу зайти только по логину и паролю а кто то другой заходит просто так. В чем может быть проблема?

ksa 13.08.2014 08:21

Цитата:

Сообщение от vabg
если пользователь наберет в адресной строке index.php?user=hacker то он попадет в защищенную зону, если я все верно понимаю.

Нет, неправильно.

Цитата:

Сообщение от vabg
Хочу это исправить, но вот казус. Решил проверить как он это сделал и... вписываем в адресной строке этот параметр и ничего, все также просит авторизироваться. Почему?

Потому как переменные адресной строки попадают в реквест, а не сессион.

А хакер твой сначала записал данные в сессион видать самостоятельно. Либо через твою страничку авторизации.

vabg 13.08.2014 13:13

А можно поподробнее? Если через мою страницу авторизации, то где смотреть примерно и что исправлять? А если самостоятельно, то это как?

ksa 13.08.2014 13:46

Цитата:

Сообщение от vabg
А можно поподробнее?

Чисто теоретически, поскольку я не хакер... :lol:
Твоя страничка должна отправить некий запрос по некоуму адресу, а там и будет произведена запись в сессион.
Вот некто и съэмитировал такой запрос. Получил ту запись в сессион. Теперь может везде у тебя лазить...

Цитата:

Сообщение от vabg
А если самостоятельно, то это как?

Опять же, я не хакер... Т.ч. только теория. :)
Чтобы получить доступ к "твоей" сессии нужно съэмулировать вход в твой домен, иначе сессия там будет другая...

vabg 13.08.2014 14:04

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

А вот про эмуляцию не понял?

ksa 14.08.2014 08:33

Цитата:

Сообщение от vabg
А вот про эмуляцию не понял?

Чисто в теории...
Хацкер делает страницу на каком-то своем ресурсе, твой то-ведь ему не доступен... Если он съэмулирует свою работу "как на твоем ресурсе" - сможет сам записать в сессию все, что угодно и это будет именно "твоя" сессия.
Т.о. ничего у тебя запрашивать не нужно на проверку...

ksa 14.08.2014 08:39

А может он имеет доступ к твоему ресурсу и имеет тебя прямо с него...

skrudjmakdak 20.08.2014 11:44

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


Часовой пояс GMT +3, время: 14:43.