Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1individka(4kyrs-7semestr-MiSZKI).doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
176.13 Кб
Скачать

4.4 Решение проблемы неинициализированных данных

При создании программы часто возникают ошибки, связанные с инициализацией данных. Неинициализированные данные могут привести к некорректной работе программы, например присвоение переменной случайного, соответствующего типу, числа до описания цикла, что может не позволить правильно выполнить алгоритм программы. Решение данной проблемы можно найти при ручном поиске и присвоение какой-либо переменной нулевого значения. С появлением новых версий языков программирования при компиляции программы, компилятор сам инициализирует данные, присваивая переменным, как правило, нулевые значения.

4.5 Защита от sql-инъекций

Атака типа SQL Injection — один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода. Это атака, при которой производится вставка вредоносного кода в строки, передающиеся затем в базу MySQL, для синтаксического анализа и выполнения. Эта уязвимость может дать возможность атакующему выполнить произвольный запрос к базе данных (например, прочитать содержимое любых таблиц, удалить, изменить или добавить данные), получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере.

Основная форма атаки SQL Injection состоит в прямой вставке кода в пользовательские входные переменные, которые объединяются с командами SQL и выполняются. Менее явная атака внедряет небезопасный код в строки, предназначенные для хранения в таблице или в виде метаданных. Когда впоследствии сохраненные строки объединяются с динамической командой SQL, происходит выполнение небезопасного кода.

Атака осуществляется посредством преждевременного завершения текстовой строки и присоединения к ней новой команды. Поскольку к вставленной команде перед выполнением могут быть добавлены дополнительные строки, злоумышленник заканчивает внедряемую строку меткой комментария «--». Весь последующий текст во время выполнения не учитывается.

Защититься от данного вида атаки достаточно просто. Все три правила защиты относятся к трем способам передачи информации серверу GET, POST, Cookie.

  1. Фильтровать кавычки.

  2. При использовании оператора сравнения строк LIKE фильтровать знаки “%” и “_”.

  3. Не использовать при сравнении прерменных без кавычек типа SELECT …WHERE id=$id а использовать так SELECT ...WHERE id='$id' и обратиться к пункту 1.

  4. Также можно включить magic_quotes_gpc = Off в файле php.ini.

4.6 Защита от xss-инъекций

XSS-атака, она же Cross-Site Scripting attack (межсайтовый скриптинг) — это атака, которая позволяет злоумышленнику вставлять в HTML-код сайта вставки вредоносного HTML-кода, как правило, скрипты JavaScript. Это может привести к различного рода неприятностям. Например:

  • при внедрении на сайт ссылки, которая ведёт на сайт злоумышленника, и представляет собой точную внешнюю копию того сайта, на котором была размещена. Человек, попав на сайт злоумышленника, может нечаянным образом оставить свои логин и пароль. Создание точной копии сайта жертвы на сервере злоумышленника — очень эффективный способ взлома и распространён широко в интернете и он далеко не обязательно связан с XSS-атакой;

  • с помощью XSS можно возможно выкрасть содержимое файлов cookie посетителей сайтов, в которых могут без проблем храниться пароли;

  • помимо взлома и кражи сайта, всегда возможна порча содержимого страницы.

От XSS уязвимости вас могут защитить две основные функции:

  • strip_tags() — удаляет из строки все HTML-теги, кроме разрешённых;

  • htmlspecialchars() — заменяет все спецсимволы на их HTML-аналоги (например: < заменяется на &lt).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]