SQLAlchemy会清理原始SQL吗?

10 投票
1 回答
8715 浏览
提问于 2025-04-18 11:31

简单来说。如果我做了这样的事情:

Conn.execute(RAW_SQL) 

那么sqlalchemy会对这个进行处理,以防止SQL注入吗?还是说它只是直接执行这个命令?谢谢!

1 个回答

11

不,如果你直接传入带有值的原始SQL,SQL Alchemy不会进行安全处理。它会直接执行这个SQL。

至少要使用查询参数。

一个字符串对象会直接传给底层的数据库连接实现;它确实支持查询参数,但你需要使用特定于处理数据库通信的库的参数格式。

你可以使用 sqlalchemy.sql.expression.text() 来生成不依赖于具体实现的查询参数语法的SQL。

撰写回答