我是一個新手程序員,我繼承了一個由現在離開公司的人設計和構建的應用程序。它在PHP和SQL Server 2008R2中完成。在這個應用程序中,有一個頁面,其中有一個表格顯示項目列表,從數據庫填充,在側欄中有一些過濾器選項 - 按ID,關鍵字,日期等進行搜索。此表由一個龐大的查詢填充,通過將它們連接到所述查詢來應用過濾器。例如,如果有人想項目#131:搜索選項的SQL連接的替代方法?
$filterString = "Item.itemID = 131";
$filter = " AND " . $filterString;
SELECT ...
FROM ...
WHERE...
$filter
過濾器被包括在搜索頁面的URL的結尾。這不是很好,我相當肯定有一些SQL注入漏洞的結果,但它非常靈活 - 過濾字符串是在它被共享之前創建的,並且可以有許多不同的條件:例如$ filterString可能是「條件AND條件AND coindtion OR條件」。
我一直在尋找存儲過程,作爲一種更好的方法來解決SQL注入問題,但我還沒有任何運氣如何複製這種相同級別的靈活性。我不知道提前選擇哪個過濾器(如果有的話)。
有什麼我失蹤了嗎?