2015-08-11 15 views
5

Ich habe die folgende Abfrage, die like verwendet, um ein Blog zu durchsuchen. Ich bin mir nicht sicher, ob ich mich anfällig für einen SQL-Injection-Angriff mache, wenn ich das tue. Wie geht SQLAlchemy damit um? Ist es sicher?Ist eine SQLAlchemy-Abfrage für Injection-Angriffe anfällig?

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

Antwort

8

Die zugrunde liegende db-api Bibliothek für was auch immer Datenbank Sie verwenden (sqlite3, psycopg2, etc.) entkommt Parameter. SQLAlchemy übergibt einfach die Anweisung und die Parameter an execute, der Treiber tut, was auch immer benötigt wird. Angenommen, Sie schreiben kein Roh-SQL, das selbst Parameter enthält, sind Sie nicht anfällig für eine Injektion. Ihr Beispiel ist nicht anfällig für eine Injektion.