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
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Обнаружение уязвимостей
2. Закрыт доступ на прямое обращение к критическим файлам и папкам.
3. Жесткая проверка загружаемых файлов.
4. Фильтрация вывода (от XSS)
5. eval и подобные скрипт не использует
На что еще следует обратить внимание?
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
EuGen
Отправлено: 02 Декабря, 2011 - 15:09:35
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
snikers987 пишет:
Все данные от пользователя пропускаются через. след. функцию:
А если нужно передать отрицательное число?
snikers987 пишет:
Закрыт доступ на прямое обращение к критическим файлам и папкам.
Каким образом реализовано?
snikers987 пишет:
Жесткая проверка загружаемых файлов.
Какая именно проверка?
snikers987 пишет:
eval и подобные скрипт не использует
Если не используется, можно запретить eval, exec, shell_exec и им подобные просто в конфигурации.
Задача только в безопасности кода, но не всего веб-приложения? (во втором случае можно еще подумать о безопасности окружения)
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
snikers987
Отправлено: 02 Декабря, 2011 - 15:19:37
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
EuGen пишет:
1. А если нужно передать отрицательное число?
2. Каким образом реализовано?
3.Какая именно проверка?
4.Если не используется, можно запретить eval, exec, shell_exec и им подобные просто в конфигурации.
4.Задача только в безопасности кода, но не всего веб-приложения? (во втором случае можно еще подумать о безопасности окружения)
1. Отрицательные числа исключены.
2.Контрольная константа + htaccess
3.Допускаются только изображения, проверка расширения по вайтлисту, getimagesize() (изображение ли получено, размеры), размер загружаемого файла.
4. Так и поступил
5.Нужна безопасность приложения в целом
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
EuGen
Отправлено: 02 Декабря, 2011 - 15:28:49
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
snikers987 пишет:
Контрольная константа
Это какая такая?
snikers987 пишет:
Допускаются только изображения
Как это проверяется?
snikers987 пишет:
проверка расширения по вайтлисту
Собственно, расширение - не более, чем приписка к имени. Правда, веб-сервер на него ориентируется, так что сойдет.
snikers987 пишет:
Нужна безопасность приложения в целом
Тогда проверьте, что:
* у каждого сервиса есть свой пользователь, из под которого он работает
* нигде без надобности не стоит лишних прав (в особенности - права на исполнение)
* пользователь БД имеет ровно столько прав, сколько ему необходимо в соответствии с бизнес-логикой приложения
* используется chroot для корневого каталога системы
* логируются самими скриптами все необычные действия пользователей.
* логируется работа системных сервисов
* все php-сообщения об ошибках отключены
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
snikers987
Отправлено: 02 Декабря, 2011 - 16:02:05
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Цитата:
Это какая такая?
Это такая которая определяется в ядре приложения, а во всех подлючаемых файлах(которые не запускаются на прямую)
if(!getimagesize($img))die("Фаил не является изображением");
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
snikers987
Отправлено: 02 Декабря, 2011 - 21:30:18
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Цитата:
логируются самими скриптами все необычные действия пользователей.
Можно подробнее?
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
EuGen
Отправлено: 02 Декабря, 2011 - 22:06:58
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Ну, например, у Вас есть группы пользователей. Есть "модераторы" и "администраторы". Первые не могут удалять пользователей, вторые - могут. Естественно у первых нет кнопки "удалить", у вторых - есть.
Предположим, у Вас есть скрипт, обрабатывающий запросы - users.php и запрос на удаление пользователя выглядит как users.php?action=delete&user_id=X - это есть то действие, которое вызывается администраторской кнопкой. Естественно, модератор не может видеть эту кнопку, а потому такой вызов скрипта ему будет недоступен через интерфейс. Однако же он может (подсмотрев/перехватив вызов к примеру, или попросту "догадаться") послать такой запрос - просто в строке браузера.
Ну а так как Вы все предусмотрели и ни в коем случае не доверяете пользовательскому вводу, то Вы проверяете, достаточно ли прав у пользователя, чтобы выполнить указанное action. Так вот во всей этой длинной истории нестандартное (не предусмотренное логикой приложения) поведение пользователя будет - если Вам придет action, верный по сути (в данном случае delete), но на который у пользователя нет прав. Нужно не просто сообщать пользователю об ошибке (или же перенаправить его куда-либо), но и записать этот факт в лог.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
snikers987
Отправлено: 03 Декабря, 2011 - 11:30:51
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Спасибо, сделал!
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.