在PHP網頁程序實際應用中,為了應對不斷掃描的SQL漏洞掃描工具,我們應該對網頁傳遞的參數進行一系列的處理。
第一步就是將獲取來的參數轉換為HTML實體,這樣可以應對一些在參數中加入<script>或 sql語法重置的語句。
這時候在PHP中我們就需要一個類似于ASP的Server.HTMLEncode一樣的方法。
PHP當然也有類似這樣的方法那就是 htmlspecialchars,而且還提供一個轉回方法 htmlspecialchars_decode()
官方說明:
從官方描述我們可以發現,它把預定的幾個字符全部轉換成為HTML實體,這幾個字符就是SQL注入語句的命脈,不管怎么變,都需要有這幾個字符。所以我們使用 htmlspecialchars完全可以作為防止SQL注入的第一步。
下面來看一個實例:
echo htmlspecialchars("<script>")
使用 htmlspecialchars 轉換后我們得到的結果如下:
<script>gt;
可以看到 <> 這兩個符號已經被轉義為HTML實體了,這樣最初期的 SQL注入里面的JS代碼就跑不起來了。
當然要防止SQL注入這僅僅是第一步而已,我們還需要對獲取的參數進行多次對比、替換、真實性檢驗等。不同的應用場景有不同的處置方式。以后在使用過程中碰到的話會再更新。
原文地址:http://www.zgqngk.com/library/202009/36.html(張家口導航-睿兒知識庫)