SQLAlchemy是否清理原始SQL?

时间:2014-06-30 00:00:34

标签: python sqlalchemy sql-injection

简单地说。如果我做了类似

的事情
Conn.execute(RAW_SQL) 

sqlalchemy会对此进行清理以防止sql注入,还是只是执行它? 感谢

1 个答案:

答案 0 :(得分:3)

不,如果您使用插值的值传入原始SQL,SQL Alchemy将清理它。它只会被执行。

始终使用查询参数,至少。

字符串对象直接传递给底层数据库连接实现;它 支持查询参数,但您必须使用特定于处理数据库通信的库的参数样式。

您可以使用sqlalchemy.sql.expression.text()生成具有实现不可知查询参数语法的SQL。