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