gpt4 book ai didi

python - SQLAlchemy + SQL 注入(inject)

转载 作者:IT老高 更新时间:2023-10-28 21:33:56 29 4
gpt4 key购买 nike

在使用 SQLAlchemy 时缓解 SQL 注入(inject)攻击的最佳做法是什么?

最佳答案

tldr:尽可能避免使用原始 SQL。

接受的答案是懒惰且不正确的。 filter 方法接受原始 SQL,如果以这种方式使用,则完全容易受到 SQL 注入(inject)攻击。例如,如果您要接受来自 url 的值并将其与过滤器中的原始 sql 结合起来,那么您很容易受到攻击:

session.query(MyClass).filter("foo={}".format(getArgs['val']))

使用上面的代码和下面的 url,您将在过滤器语句中注入(inject) SQL。上面的代码将返回数据库中的所有行。

网址编码:

https://example.com/?val=2%20or%201%20=%201

更容易理解(URL 解码):

https://example.com/?val=2 or 1 = 1

关于python - SQLAlchemy + SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6501583/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com