SQLAlchemy是否清除原始SQL?

SJP*_*SJP 5 python sql-injection sqlalchemy

简单的说。如果我做了类似的事情

Conn.execute(RAW_SQL) 
Run Code Online (Sandbox Code Playgroud)

sqlalchemy会对此进行清理以防止sql注入还是按字面意思执行它?谢谢

Mar*_*ers 5

不,如果您传入带有插值的原始SQL,SQL Alchemy将不会对其进行清理。它将被执行。

至少始终使用查询参数。

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

您可以使用sqlalchemy.sql.expression.text()生成与实现无关的查询参数语法的SQL。