Насколько безопасна выборка из базы?

162
31 января 2018, 14:47

В коде движка нашел подобный код (и не в одном месте)

$delete_name=str_replace("'","",$_GET['delete_name']);
$query="select count(*) from catalog_data where name='".$delete_name."'";
$kol = query_count($query);

т.е по-сути, перед отправкой в базу, только замена одинарной кавычки. Насколько безопасна данная выборка будет, если нет никакой фильтрации или pdo ?

Желательно развернутый ответ, если небезопасно ! Спасибо

Answer 1

Строго говоря, MySQL требует только, чтобы обратная косая черта \ и символ кавычки ', используемый, используемый для указания строки в запросе, были экранированы.

Функция mysql_real_escape_string экранирует другие символы, чтобы облегчить их чтение в файлах журнала.

https://stackoverflow.com/questions/16255585/what-does-the-x1a-characters-mean/#16255607

Экранирование слэша нужно чтобы при экранировании кавычки нельзя было экранировать сам добавляемый слэш. В вашем примере делается не экранирование кавычки, а удаление, значит со слэшем делать ничего не надо и инъекция SQL кода невозможна.

Тем не менее можно как минимум вызвать отказ в обслуживании, передав обратную косую и заэкранировать последнюю одинарную кавычку

READ ALSO
Вывести на экран вектор с диапазоном (многопоточность)

Вывести на экран вектор с диапазоном (многопоточность)

Мне нужно научиться использовать многопоточность при добавлении или удалении значения в вектореЯ создала функцию CopyDataTo, чтобы вывести на экран,...

241
чтение из файла txt

чтение из файла txt

Добрый вечер,

262
неправильно считывает данные из файлов .txt

неправильно считывает данные из файлов .txt

Добрый вечер еще разПрограмма неправильно считывает данные из файлов

211