Find SQL injection in Python code

https://github.com/uber/py-find-injection

用程式化的方式掃出 code base 沒有乖乖用 paramstyle sql 語句

Imgur

鴿子封包,uber 在 2013 年丟出來的玩具

原理利用 AST 拆 code 找出特定的 function name,並比對第一個參數有沒有用過字串串接

default 會找 session.execute cursor.execute

簡單但有效,clone 下來改也很快。

其中找字串串接的 code也滿有趣的,值得一讀

但是歹記通常不是憨人想得這麼簡單,code base 裡面總有為了省事,及不好處理的 list parameter, 而自己串 sql。有年紀的 codebase 掃下去大概只有淚與累,大概只能用在自己開發或是放在 CI 上逼死同事。

comments powered by Disqus