Вопрос. Перехват sql injection.

Статус
В этой теме нельзя размещать новые ответы.

hofa

Создатель
Регистрация
27 Май 2008
Сообщения
39
Реакции
23
Здравствуйте, уважаемые.

Подскажите пожалуйста, как можно перехватить sql инъекцию?
То есть необходимо, если зарегистрированный пользователь пытается внедрить инъекцию, добавить запись об этом в таблицу статистики.

Заранее огромное Вам спасибо.
 
Как вариант проверять вводимые пользователем данные на присутствие SQL команд. Например с помощью регулярки какой-нить.
 
Может существует какой то класс, который позволяет решать эту задачу?
 
Как вариант обрабатывать все ошибочные sql запросы.
 
Пошарь в Class: class_sql_inject, сам не юзал но в инфе написано "Detect attempts to perform SQL injection attacks"
 
Имхо, лучше всего не искать в запросах что-то плохое, а удалять это плохое, хотя конечно против всякого лома есть свой прием, но от основного защититься можно. Пиши программу и думай, как ее можно взломать, тогда поймешь что надо что бы усложнить таким товарищам задачу.
 
Нет никаких SQL-инъекций, есть неправильно составленные SQL-запросы. Соответственно перехватывать то, чего нет, не имеет никакого смысла - нужно правильно составлять SQL-запросы.
 
Нет никаких SQL-инъекций, есть неправильно составленные SQL-запросы. Соответственно перехватывать то, чего нет, не имеет никакого смысла - нужно правильно составлять SQL-запросы.

Интересно написал =) И абсолютно неверно. sql инъекция - это внедрение своего sql кода в запрос с целью получения или добавления определенной информации с\в базы данных. Если sql запрос неправильно составлен - то субд вернет ошибку и никакой информации взломщик не получит. А сама возможность проведения sql инъекций существует из-за недостаточной фильтрации входящих переменных в скрипте (субд вообще ни причем - она выполняет тот запрос, который ей передает скрипт).

По сабжу: зачем такой изврат ? Лучше обезопасить свой скрипт от возможностей проведения инъекций, чем ловить взломщиков ... но все же если очень хочется, то нужно парсить входящие данные на предмет `служебных` слов sql, вроде:

union
select
and
or
from
where

и\или некоторых функций


и др.
 
что то типа такого
if( isset($_GET['union']) { die('Hacking attempt ^_^ '); }

или же как вариант парсить access логи, на запросы
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху