in_array($var,$arr)這個函數的功能是看$var是否在$arr這個數組中,若存在,則返回true,否則返回false。
但是,這個函數會做自動類型轉換。因此,若代碼像這么寫,就會出現邏輯錯誤。
可以看到,提交的參數并不等于數組中的內容,可是依舊會被當做等于去執行。
is_numeric(),這個函數若是接收到16進制的值時,就可能出現漏洞
php的“==”和“===”的區別
==更容易出現安全隱患,我個人沒想到這樣居然會相等。
這種邏輯漏洞也是程序員容易犯錯的,兩個參數,第一個參數過濾了,第二個參數也過濾了,但是又用str_replace()再替換一下兩個參數,就導致了重合,反斜線就被轉義了。