Предотвращая Внедрение SQL в C++ OTL, DTL или библиотеки SOCI

Я смотрел на все три из этих библиотек базы данных, и я задаюсь вопросом, делают ли они что-нибудь для предотвращения Внедрения SQL. Я, скорее всего, собираюсь быть созданием lib сверху одного из них, и инжекция является главным беспокойством, которое я имею в выборе того. Кто-либо знает?

6
задан Benoit 10 November 2011 в 13:44
поделиться

2 ответа

Получил с автором библиотеки OTL. Параметризованный запрос, написанный на «диалекте OTL», как я его называю, будет передан базовым API БД как параметризованный запрос. Таким образом, параметризованные запросы будут настолько же безопасными для инъекций, насколько их делают базовые API.

Перейдите на этот другой пост SO, чтобы получить полное объяснение по электронной почте: Использует ли библиотека базы данных C ++ OTL SQL параметризованные запросы под капотом или конкатенацию строк?

Изменить: SOCI использует выражение soci :: use , которое переводится в обычный механизм привязки, но с подробнее синтаксический сахар . Пример: db_session << "вставить в значения таблицы (столбца) (: value_placeholder)", использовать (user_input, "value_placeholder");

Что касается DTL, я не уверен, что он делает с параметры по отношению к базовым API.

5
ответ дан 17 December 2019 в 02:21
поделиться

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

1
ответ дан 17 December 2019 в 02:21
поделиться
Другие вопросы по тегам:

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