我有以下使用like
搜索博客的查询。如果我这样做,我不确定自己是否容易受到SQL注入攻击。 SQLAlchemy如何处理这个问题?这样安全吗?
search_results = Blog.query.with_entities(Blog.blog_title).filter(Blog.blog_title.like("%"+ searchQuery['queryText'] +"%")).all()
答案 0 :(得分:10)
您使用的任何数据库(sqlite3,psycopg2等)的基础db-api库都会转义参数。 SQLAlchemy只是将语句和参数传递给execute
,驱动程序会执行所需的操作。假设您没有自己编写包含参数的原始SQL,那么您就不容易注入。你的例子不易受到注射。