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 » » HTTP и PHP » Вечный вопрос по авторизации

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

1. Deonis - 24 Июля, 2013 - 13:54:16 - перейти к сообщению
Всем привет! Не вникал углубленно в тему безопасности, поэтому возник вопросик. Достаточно ли будет использовать для входа в админку сайта только сессии? Для уточнения: никаких "новых регистраций" через веб-интерфейс не будет, в кукисах ничего не сохраняется (модератор вводит данные при каждом новом посещении), пароль хорошо шифруется (XOR).
2. EuGen - 24 Июля, 2013 - 13:59:12 - перейти к сообщению
Deonis пишет:
Достаточно ли будет использовать для входа в админку сайта только сессии?

Достаточно. Дополнительно - включите также http_only для сессий для затруднения XSS-атак.
Ещё один способ укрепить безопасность - привязывать сессию к IP-адресу посетителя (записывая его в ту же сессию), и, при смене адреса, разрывать сессию и предлагать авторизоваться снова.
Deonis пишет:
пароль хорошо шифруется (XOR).

- значит, плохо шифруется, потому что достаточно двух перехваченных сообщений с XOR, чтобы расшифровать данные (если речь идёт о "классическом" XOR). Используйте хеш-функцию + соль.
3. Deonis - 24 Июля, 2013 - 14:03:44 - перейти к сообщению
EuGen пишет:
привязывать сессию к IP-адресу

Не будет ли проблем, если ip динамический?
EuGen пишет:
Используйте хеш-функцию + соль.

Да, думаю, что вы правы.
4. EuGen - 24 Июля, 2013 - 14:06:59 - перейти к сообщению
Deonis
Смена IP-адреса, как правило, происходит редко (раз в несколько часов) - почти всегда это намного дольше, чем время сессии (то есть времени работы с веб-приложением). Однако, если работа с веб-интерфейсом действительно имеет большую длительность, то я бы рекомендовал давать возможность некоторым пользователям самостоятельно устанавливать флаг дополнительной защиты, то есть проверку IP-адреса (по-умолчанию включено), либо бы возложил эту функцию (разрешение некоторым пользователям входить без проверки IP-адреса) на администратора.
5. Deonis - 24 Июля, 2013 - 14:09:25 - перейти к сообщению
EuGen, спасибо. Вопрос можно считать закрытым.
6. Проклятый принц - 24 Июля, 2013 - 14:13:24 - перейти к сообщению
Я слышал, что переменную и в том числе сессию, можно подкинуть. Пример от подобной атаки выглядило примерно так: если пост или гэт совподает с названием сессии или кука, то экзит. Улыбка
Не знаю, реально ли это всё. Если реально, обязательно мне надо поставить защиту. Подмигивание
7. soffrick - 24 Июля, 2013 - 14:18:37 - перейти к сообщению
Проклятый принц пишет:
Я слышал, что переменную и в том числе сессию, можно подкинут

сессию или куку?
8. Проклятый принц - 24 Июля, 2013 - 14:22:02 - перейти к сообщению
soffrick пишет:
Проклятый принц пишет:
Я слышал, что переменную и в том числе сессию, можно подкинут

сессию или куку?

Да, что-то в этом духе слышал.
Мол, именно поэтому при написании капчи, в самом начале кода, сессия отвечающая за рандомную строку, в начале очищают по принцепу $_SESSION[rand] = "", а лишь потом устанавливают ей рандомное значение.
9. EuGen - 24 Июля, 2013 - 14:44:39 - перейти к сообщению
Проклятый принц
Почитайте про механизм работы сессии и все вопросы отпадут. Кроме того - право, не стоит верить всему, что услышали.
10. soffrick - 24 Июля, 2013 - 14:47:16 - перейти к сообщению
возможно имелось ввиду "подкинуть" значение куки php_sessid для получения данных сессии
11. Проклятый принц - 24 Июля, 2013 - 14:47:21 - перейти к сообщению
EuGen пишет:
Проклятый принц
Почитайте про механизм работы сессии и все вопросы отпадут. Кроме того - право, не стоит верить всему, что услышали.

Извиняюсь на счёт сессии: "лишнего в одно ведро положил".
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if (isset($_COOKIE['MAGIC_COOKIE'])) {
  4.  
  5.     // MAGIC_COOKIE получена из достоверного источника.
  6.     // Для полной уверенности необходимо проверить ее значение.
  7.  
  8. } elseif (isset($_GET['MAGIC_COOKIE']) || isset($_POST['MAGIC_COOKIE'])) {
  9.  
  10.    mail("admin@example.com", "Обнаружена попытка взлома", $_SERVER['REMOTE_ADDR']);
  11.    echo "Обнаружено нарушение безопасности, администратор уведомлен.";
  12.    exit;
  13.  
  14. } else {
  15.  
  16.    // MAGIC_COOKIE в данных запроса не присутствует
  17. }
  18. ?>
  19.  

Из источника: http://www.php.su/security/?globals
Да-да, про сессию я явно "лишканул".
12. EuGen - 24 Июля, 2013 - 15:01:45 - перейти к сообщению
И в чём заключается назначение кода в комментарии выше?
13. Проклятый принц - 24 Июля, 2013 - 15:18:38 - перейти к сообщению
EuGen пишет:
И в чём заключается назначение кода в комментарии выше?

Доказательство моей неправоты.
Там не упоминались ни какие сессии, где демонстрировались подкид переменных.
14. soffrick - 24 Июля, 2013 - 15:22:46 - перейти к сообщению
Проклятый принц пишет:
подкид

що це таке? Радость
15. Проклятый принц - 24 Июля, 2013 - 15:26:07 - перейти к сообщению
Я, кстати, ни как не могу изменить переменную. То ли у меня register_globals = off, то ли у меня руки кривые...
url: www[dot]test[dot]ru/index.php?var = "Работает"


Не изменяется? Как хакнуть самого себя? Радость Извиняюсь за глупый юмор...
(Добавление)
soffrick пишет:
Проклятый принц пишет:
подкид

шо цэ такэ? Радость

Нью руссиш слово от Проклятого принца. Подмигивание Главное, смысл понятен, надеюсь.

 

Powered by ExBB FM 1.0 RC1