對於我的高級論文,我開發了一個程序,該程序可以使用預準備語句自動檢測並建議修復SQL注入漏洞。特別是PHP的mysqli擴展。我對SO社區的問題是:您首選的方法是如何檢測PHP源代碼中的SQL?在PHP文件中解析SQL的最佳方法?
我用枚舉方含的SQL keywords (SELECT, INSERT, ...)
和基本上解析每一行,遍歷枚舉,以確定是否任何SQL存在。此外,我必須確保解析器不會錯誤地檢測到html(例如< \ select>)。
對我來說,這個解決方案工作得很好,但現在我有一點點更多的時間在我的手現在有想過重構使用更優雅(高效的)解決方案的代碼。請限制您的解決方案使用C#,因爲這是我寫我的程序。