Задать вопрос
kurtov
@kurtov

Возможна ли sql инъекция при вставке строки json_encode($array, JSON_UNESCAPED_UNICODE)?

Получаю данные от клиента и формирую массив. Массив храню в БД mysql в поле TEXT. Вставка или обновление обычной строкой:
$string =  json_encode($array,  JSON_UNESCAPED_UNICODE);
$query = "UPDATE db_table SET db_field='$string'";

Каким образом можно осуществить SQL инъекцию в этом случае?
Поиск выдал лишь заключение, что это небезопасно и так делать не надо. Но реальных примеров я не нашел.

Хочется обезопасить БД от инъекций, но не хочется:
1. использовать подготовленные запросы, т.к. лишние запросы;
2. экранировать всю json строку при помощи mysqli_real_escape_string;
3. нормализировать БД или использовать другую БД (MongoDB) т.к. на этом этапе разработки в этом нет необходимости
  • Вопрос задан
  • 649 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Очистите массив $array через regex от всех НЕ ОЖИДАЕМЫХ значений и затем проверьте, что все необходимые значения (для дальнейшей работы с базой) присутствуют.
Ответ написан
trevoga_su
@trevoga_su
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы