конструктивные просчеты ЕКАТЕРИНА СЕДОВА Спецвыпуск: Хакер, номер #067, стр. 067-056-5 2. Обязательно отключай на конечных сайтах вывод информации об ошибках. Помни о разнице между рабочим проектом и конечным продуктом. Чтобы не помочь злоумышленнику, не выводи информацию о месте кода, в котором произошла ошибка, — как минимум, это недальновидно. 3. Если на основании пользовательских данных формируется SQL-запрос, обязательно приводи типы переменных к типам соответствующих полей таблиц (в примере из статьи — $id = (int)$_GET[“id”]) и экранируй кавычки для переменных текстового типа. 4. Проверяй соответствие вводимых данных нужному тебе формату и на клиентской, и на серверной стороне. Поковырявшись с клиентской проверкой, сдадутся только самые ленивые, а особо дотошные найдут способ обойти ее и будут вознаграждены дырявыми PHP-скриптами. 5. Не позволяй пользователям встраивать js-скрипты в твои сайты, обрабатывай поступившие метасимволы. WWW http://web.archive.org/web/20041111044016/www.peterbailey.net/fValidate — js-библиотека fValidate для проверки данных на клиентской стороне. ХАЛАТНОСТЬ И НЕВНИМАТЕЛЬНОСТЬ ПРОГРАММИСТА — ОСНОВНОЙ ИСТОЧНИК УЯЗВИМОГО КОДА ОБЯЗАТЕЛЬНА ДВУСТОРОННЯЯ ПРОВЕРКА ВВОДИМЫХ ДАННЫХ: НА СТОРОНЕ КЛИЕНТА И НА СТОРОНЕ СЕРВЕРА SQL-ИНЪЕКЦИЯ ПОЗВОЛЯЕТ МОДИФИЦИРОВАТЬ SQL-ЗАПРОСЫ МЕЖСАЙТОВЫЙ СКРИПТИНГ — ВНЕДРЕНИЕ «ПЛОХОГО» КОДА В HTML-КОД СТРАНИЦЫ |