2010-06-25 14 views

Odpowiedz

5

Dostałem z autorem biblioteki OTL. Sparametryzowana kwerenda napisana w "OTL Dialect", jak ją nazywam, zostanie przekazana do bazowych interfejsów API DB jako sparametryzowana kwerenda. Tak sparametryzowane zapytania byłyby tak bezpieczne w zastrzyku, jak robią to podstawowe API.

idź do this inne tak pisać o swoim pełnym wyjaśnieniem e-mail: Is C++ OTL SQL database library using parameterized queries under the hood, or string concat?

Edit: SOCI używa wyrażenia soci::use, co przekłada się na zwykłym mechanizmem wiążącym, ale z większą cukru składniowej. Przykład: db_session << "insert into table(column) values(:value_placeholder)", use(user_input,"value_placeholder");

Jeśli chodzi o DTL, nie jestem pewien, co robi z parametrami w stosunku do podstawowych API.

1

Zwykle biblioteka na tym poziomie powinna po prostu robić to, co mu się każe. Najbardziej zapobiegasz iniekcji SQL, patrząc na ciągi dostarczane przez użytkownika i przekazując rzeczy do biblioteki dopiero po ich oczyszczeniu.

+0

Cóż, wiem, że zawsze dobrze jest odkażać dane wejściowe, aby zapobiec wstrzyknięciu, ale nie byłem pewien w żaden sposób w żadnej z tych bibliotek, czy używają parametrów pod maską, czy też są one zasadniczo po prostu konwertuję zmienne, które przekazuję do łańcuchów i łączę je, a jeśli nawet, zamieniają moje zapytanie na sparametryzowaną wersję. Może po prostu przegapiłem coś w dokumentacji dla każdego, ale do tej pory nie widziałem nic takiego. –

+0

Sprawdź ciąg nie jest wystarczający, aby zapobiec iniekcji SQL – danbo

Powiązane problemy