SQLAlchemy会清理原始SQL吗?
简单来说。如果我做了这样的事情:
Conn.execute(RAW_SQL)
那么sqlalchemy会对这个进行处理,以防止SQL注入吗?还是说它只是直接执行这个命令?谢谢!
1 个回答
11
不,如果你直接传入带有值的原始SQL,SQL Alchemy不会进行安全处理。它会直接执行这个SQL。
至少要使用查询参数。
一个字符串对象会直接传给底层的数据库连接实现;它确实支持查询参数,但你需要使用特定于处理数据库通信的库的参数格式。
你可以使用 sqlalchemy.sql.expression.text()
来生成不依赖于具体实现的查询参数语法的SQL。