Przeglądałem wszystkie trzy z tych bibliotek baz danych i zastanawiam się, czy oni robią wszystko, aby zapobiec iniekcjom SQL. Najprawdopodobniej zamierzam zbudować bibliotekę na szczycie jednego z nich, a wtrysk to najważniejszy problem przy wyborze jednego. Ktoś wie?Zapobieganie iniekcji SQL w bibliotekach C++ OTL, DTL lub SOCI
Odpowiedz
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.
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.
- 1. Zapobieganie iniekcji SQL w hibernacji
- 2. Czy istnieje implementacja null std :: ostream w C++ lub bibliotekach?
- 3. Jak zapobiec iniekcji SQL w stanie hibernacji?
- 4. Zapobieganie buforowaniu w SQL Server
- 5. Jak zapobiec iniekcji SQL w interfejsie powłoki linii poleceń MySQL?
- 6. Zapobieganie iniekcjom SQL za pomocą Microsoft Access i VB.NET
- 7. sposób obsługi wspólnej biblioteki w bibliotekach TFS i bibliotekach udziałów
- 8. Obsługa iniekcji SQL w porządku HQL według klauzuli
- 9. Jak zapobiec iniekcji sql w nodejs i sequelize?
- 10. Unikanie iniekcji SQL w usługach przechowywanych Azure DocumentDB
- 11. Jak utworzyć dynamiczne powiązania w Guice, które wymagają iniekcji iniekcji?
- 12. Mechanizm wiązania iniekcji automatycznej
- 13. Zapobieganie atakom SQL Injection: od czego zacząć
- 14. Wyłączanie lub zapobieganie multitouch w działaniu
- 15. Ograniczenia GPL w bibliotekach javascript
- 16. Unikanie iniekcji SQL w zapytaniu SQL z podobnym operatorem przy użyciu parametrów?
- 17. Czy Java Spark zapewnia obsługę iniekcji zależności lub kontenerów IoC?
- 18. Gdzie jest System.Tuple w przenośnych bibliotekach klas?
- 19. Jak uzyskać aliasing zmiennych w bibliotekach współdzielonych?
- 20. Zapobieganie zabijaniu procesu w języku C#?
- 21. CocoaLumberjack i NSLog w innych bibliotekach
- 22. Zapobieganie SQL Injection/Good Ruby method
- 23. Łatwe sprawdzanie nierozwiązanych symboli w udostępnianych bibliotekach?
- 24. Debugowanie w bibliotekach zewnętrznych w QtCreator
- 25. Porównanie bibliotek bazy danych SQL C++
- 26. PowerDesigner - Zapobieganie dużej wielkości nazwy DB w wygenerowanym SQL
- 27. Zastrzyk iniekcji Grails poza usługami?
- 28. Zapobieganie przekierowaniu formularza LUB odświeżanie przy wysyłaniu?
- 29. Jak korzystać z iniekcji zależności w serwletu?
- 30. Biblioteki iniekcji zależnej od Rubiego
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. –
Sprawdź ciąg nie jest wystarczający, aby zapobiec iniekcji SQL – danbo