ОСНОВНОЕ

WORDPRESS

Операционные системы

Базы данных

Фреймворк Bootstrap

Талант без гения ненамного возвышается над уровнем голой виртуозности (Г. Гегель).

SQL – инъекция

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
SQL - инъекция
Если взять ввод данных пользователя через веб – страницу и вставить его в базу данных SQL, есть шанс, что вы оставили открытыми ворота для проблемы безопасности, известной как SQL Injection. Эта глава покажет вам, как помочь предотвратить это и поможет вам защитить ваши скрипты и операторы SQL в скриптах на вашем сервере, такие как скрипт PERL.

Инъекции обычно происходят, когда вы просите ввод пользователя, как их имя и вместо имени они дают вам SQL запросы, и вы будете неосознанно работать на вашей базе данных. Никогда не доверяйте пользователям предоставлять данные, обрабатывать эти данные только после проверки; как правило, это делается путем сопоставления с образцом.

В приведенном ниже примере, имя ограничивается буквенно-цифровыми символами, а также подчеркиванием, и длиной от 8 до 20 символов (изменить эти правила в случае необходимости).

 

Чтобы продемонстрировать эту проблему, рассмотреть этот отрывок:

 

Вызов функции предполагает извлечь запись из таблицы CUSTOMERS, где имя столбца совпадает с именем, указанным пользователем. При нормальных обстоятельствах, $ имя будет содержать только буквенно-цифровые символы и , возможно, пробелы, такие как строка ilia. Но здесь, путем добавления совершенно новый запрос к имени $, вызов к базе данных превращается в бедствие; нагнетаемый запрос DELETE удаляет все записи из таблицы Customers.

К счастью, если вы используете MySQL, то функция mysql_query ()не допускает запуск запроса или выполнения нескольких запросов SQL в вызове одной функции. Если попытаться стек запросов, вызов неудачен.

Тем не менее, другие расширения PHP базы данных, такие как SQLite и PostgreSQL с удовольствием выполняют стеки запросов, выполняя все запросы, представленные в одной строке и создают серьезную проблему безопасности.

Предотвращение SQL Injection

Вы можете обрабатывать все спецсимволы в скриптовых языках, таких как PERL и PHP. Расширение MySQL для PHP предоставляет функцию mysql_real_escape_string (), чтобы избежать ввода символов, которые являются особенными для MySQL.

 

Проблемы LIKE

Для решения проблем LIKE, механизм должен преобразовать предоставленный пользователем символы «%» и «_» в литералы. Используйте функциюaddcslashes (), которая позволяет указать диапазон символов, чтобы избежать иньекции.

 

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Простая логическая игра "Поймай кота". Задача игры окружить кота точками так, чтобы он не смог убежать с поля. Постигла неудача - начни игру снова!

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close