在我的毕业论文中,我开发了一个程序,该程序可以使用准备好的语句自动检测并建议修复 SQL 注入漏洞。特别是 PHP 的 mysqli 扩展。我对 SO 社区的问题是:您首选的方法是检测 PHP 源代码中的 SQL?
我使用了一个包含SQL keywords (SELECT, INSERT, ...)
并基本上解析每一行的枚举,遍历枚举以确定是否存在任何 SQL。此外,我必须确保解析器没有错误地检测到 html(例如 <\select>)。
对我来说,这个解决方案运行良好,但现在我手头有更多时间,并考虑重构代码以使用更优雅(和高效)的解决方案。请将您的解决方案限制为使用C#,因为这是我编写程序时使用的。