2015-08-11 81 views
5

Mam następujące zapytanie, które używa like do wyszukiwania bloga. Nie jestem pewien, czy narażam się na atak wstrzyknięcia SQL, jeśli to zrobię. Jak radzi sobie z tym SQLAlchemy? Czy to jest bezpieczne?Czy zapytanie SQLAlchemy jest podatne na ataki typu "injection"?

search_results = Blog.query.with_entities(Blog.blog_title).filter(Blog.blog_title.like("%"+ searchQuery['queryText'] +"%")).all() 

Odpowiedz

8

Podstawowa biblioteka db-api dla dowolnej bazy danych, której używasz (sqlite3, psycopg2 itp.), Wymyka się parametrom. SQLAlchemy po prostu przekazuje instrukcję i parametry do execute, sterownik robi wszystko, co jest potrzebne. Zakładając, że nie piszesz surowego SQL, który zawiera parametry samodzielnie, nie jesteś podatny na wstrzyknięcie. Twój przykład nie jest podatny na zastrzyk.