if ($data =~ /^(.*)$/) { $data = $1;
В нем содержится ошибка: проверка на совпадение по шаблону при помощи регулярного выражения regex ничего не даст, поскольку на символы входных данных не наложено никаких ограничений. Более того, этот фрагмент кода позволяет избежать действительной проверки на безопасность введенных данных.
Система программирования PHP
Система программирования PHP имеет опцию конфигурации «safe_mode» для установки режима безопасной работы, которая ограничивает использование встроенных в язык функций. Этот режим не гарантирует правильных входных данных. Безопасный режим работы подстраховывает работу приложения, заставляя злоумышленника искать обходные пути преодоления контроля входных данных.
В безопасном режиме работы на функции работы с файлами include, readfile, fopen, file, link, unlink, symlink, rename, rmdir, chmod, chown и chgrp наложено ограничение. C их помощью можно получить доступ к файлам, если идентификатор их владельца совпадает с UID системы PHP (который обычно совпадает с идентификатором Web-сервера), или к файлам в директории, которой владеет пользователь с UID системы PHP.
Более того, язык PHP накладывает ограничения на использование функций exec, system, passthru и popen. С их помощью могут выполняться только приложения из директории PHP_SAFE_MODE_EXEC_DIR (директория определяется в файле php.h при компиляции сценария на языке PHP). А при помощи функции Mysql_Connect может быть установлено соединение с базой данных при условии совпадения идентификатора владельца базы данных с UID Web-сервера или UID выполняющегося сценария.
И наконец, для противодействия уловкам атак имитации соединения сценарии на языке PHP изменяют способ взаимодействия с механизмом аутентификации протокола HTTP (что является большей проблемой для систем с большим числом виртуальных хостовых Web-сайтов).
Язык разметки ColdFusion
Язык разметки ColdFusion реализует концепцию «песочницы» (sandbox concept), настройки которой из меню Advanced Security позволяют ограничить возможности встроенных в язык функций. Накладываемые на встроенные функции ограничения вынуждают злоумышленника искать обходные пути преодоления проверок, выполняемых приложением. В языке ColdFusion предусмотрены различные способы задания накладываемых на тэги CFML ограничений, общесистемных и индивидуальных политик пользователя. Примеры установки политик и настроек концепции «песочницы» могут быть найдены на следующих ресурсах:
www.allaire.com/Handlers/index.cfm?ID=7745&Method=Full
www.allaire.com/Handlers/index.cfm?ID=12385&Method=Full
Технология ASP
Следует начать с того, что, к счастью, в технологии ASP(VBScript и JScript) предусмотрено немного системозависимых функций, а по умолчанию доступны все функции файловой системы.
В настройках ASP присутствует переключатель запрета использования в функциях файловой системы ссылки на родительскую директорию с помощью символа «../». Этот параметр ограничивает возможности злоумышленника получить доступ к файлу, расположенному за пределами корневой Web-директории. Для изменения параметра следует открыть конфигурационную консоль информационного сервера Интернет (Microsoft Management Console), выбрать нужный Web-сайт, перейти в меню Properties I Home Directory I Configuration I Application Optionsи отключить опцию Enable Parent Paths.Пример подобных манипуляций приведен на рис. 7.3.
Рис. 7.3. Отключение опции
Enable Parent Paths,препятствующей получению доступа злоумышленника к файлу вне корневой Web-директории с использованием ссылки на родительскую директорию
Если в документах ASP не требуется поддержка файловой системы, то от нее можно отказаться, отменив регистрацию объекта File System Object при помощи консольной команды:
regsvr32 scrrun.dll /u
Система управления базами данных MySQL
Система управления базами данных MySQL позволяет читать и писать данные в базу данных при помощи SQL-запросов со следующим синтаксисом:
SELECT * INTO FILE “/file/to/save.db” FROM table
Обращение к базе данных можно ограничить, задавая разрешения доступа к файлам пользователями во встроенной таблице привилегий MySQL.
Инструментарий обработки непредвиденных данных
Многие инструментальные средства так или иначе имеют отношение к обработке непредусмотренных данных. Некоторые из них полезны программистам для отладки их кода, другие – злоумышленникам или консультантам при обнаружении прорех в системе защиты. Поскольку подобных инструментальных средств очень много, то далее будут рассмотрены лишь самые популярные.
Программа Web Sleuth
Web Sleuth (сыщик сети) – разработанная Дэйвом Циммером (Dave Zimmer) программа для Windows, позволяющая пользователю модифицировать HTTP-запросы и HTML-формы. Программа Web Sleuth широко использует возможности ядра Internet Explorer, добавляя свои собственные. Последняя версия программы Web Sleuth стала расширяемой благодаря применению подключаемых программ (plug-ins). В настоящий момент в число доступных подключаемых программ входят программы вскрытия HTTP-сессий методом «грубой силы», исследования Web-сайтов и тестирования SQL-запросов с помощью внесения в них изменений. Программа свободно доступна по адресу http://geocities.com/dizzie/sleuth.
Читать дальше
Конец ознакомительного отрывка
Купить книгу