2015-08-11 13 views
5

Ho la seguente query che utilizza like per cercare un blog. Non sono sicuro se mi sto rendendo vulnerabile a un attacco SQL injection se faccio questo. In che modo SQLAlchemy lo gestisce? È sicuro?Una query SQLAlchemy è vulnerabile agli attacchi di iniezione?

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

risposta

8

La biblioteca db-API sottostante per qualsiasi database che si sta utilizzando (sqlite3, psycopg2, etc.) sfugge parametri. SQLAlchemy passa semplicemente l'istruzione e i parametri a execute, il driver esegue tutto ciò che è necessario. Supponendo che tu non stia scrivendo SQL raw che include parametri tu stesso, non sei vulnerabile all'iniezione. Il tuo esempio non è vulnerabile all'iniezione.

Problemi correlati