SQL- инъекции

SQL- инъекции

SQL- ИНЪЕКЦИИ ЧТО ТАКОЕ? •Внедрение SQL-кода (англ. S QL injection / SQLi) — один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода. ВИДЫ АТАК •Существует три основных класса атак, основанных на внедрении SQL-кода: Классическая SQL инъекция (Classic SQLi) •SQL инъекция, основанная на эксплуатации выводимых СУБД сообщений об ошибках (Error-based SQLi) •Слепая SQL инъекция (Blind SQLi) ПРИНЦИП АТАКИ: Допустим, серверное ПО получив входной параметр id, использует его для создания SQL-запроса. Рассмотрим следующий PHP-скрипт: $id = $_REQUEST['id']; $res = mysqli_query("SELECT * FROM news WHERE id_news = " . $id)

Если на сервер передан параметр id, равный 5, то выполнится следующий SQL-запрос SELECT * FROM news WHERE id_news = 5 Таким образом, изменение входных параметров путём добавления в них конструкций языка SQL вызывает изменение в логике выполнения SQL-запроса (в данном примере вместо новости с заданным идентификатором будут выбраны все имеющиеся в базе новости, поскольку выражение 1=1 всегда истинно — вычисления происходят по кратчайшему контуру в схеме). КАК ЗАЩИЩАТЬСЯ? Для защиты от данного типа атак необходимо тщательно фильтровать входные параметры, значения которых будут использованы для построения SQL-запроса.

22
11
11
11
5 комментариев

ORM и PDO - существуют...

но где-то их нет (в го например) и чуваки без страха хреначат конкатинацией :)

1
1

when registration_date < now() - 14 days:
return dtf.create_comment("Постите смешное пожалуйсто")