為了防止SQL註入,用戶輸入不能直接嵌入SQL語句中。相反,用戶輸入必須被過濾或參數化。參數語句使用參數,而不是在語句中嵌入用戶輸入。在大多數情況下,SQL語句是正確的。然後,用戶輸入僅限於壹個參數。
壹般來說,有兩種方法可以確保應用程序不易受到SQL註入攻擊。壹種是使用代碼審查,另壹種是強制參數化語句。強制參數化語句意味著嵌入在用戶輸入中的SQL語句將在運行時被拒絕。但是,目前對該功能的支持並不多。
2.避免使用解釋器,這是黑客執行非法命令的壹種手段。
3.防止SQL註入,但也避免壹些詳細的錯誤消息,因為黑客可以使用這些消息。標準輸入驗證機制用於驗證所有輸入數據的長度、類型、語句和企業規則。
4.使用漏洞掃描工具。
然而,防範SQL註入襲擊還不夠。攻擊者現在會自動搜索和攻擊目標。其技術甚至可以輕松應用於其他Web架構中的漏洞。企業應該投資購買專業的漏洞掃描工具,例如著名的Accunetix網絡漏洞掃描器。完美的漏洞掃描器不同於網絡掃描器,後者專門在網站上查找SQL註入漏洞。最新的漏洞掃描程序可以發現最新的漏洞。
5.最後,做好代碼審計和安全測試。