PHP安全常識之驗證數(shù)據(jù)
在學(xué)習(xí)PHP語言的時候,我們肯定會關(guān)注這種語言的安全性問題。那么,今天我們就來為大家介紹保證PHP安全的首要措施——驗證數(shù)據(jù)。數(shù)據(jù)的驗證是您可能采用的最重要的習(xí)慣。而在提及輸入時,十分簡單:不要相信用戶。
#t#您的用戶可能十分優(yōu)秀,并且大多數(shù)用戶可能完全按照期望來使用應(yīng)用程序。但是,只要提供了輸入的機會,也就極有可能存在非常糟糕的輸入。作為一名應(yīng)用程序開發(fā)人員,您必須阻止應(yīng)用程序接受錯誤的輸入。仔細考慮用戶輸入的位置及正確值將使您可以構(gòu)建一個健壯、安全的應(yīng)用程序。
下面列出了適用于各種驗證數(shù)據(jù)的一般驗證提示:
使用白名單中的值
始終重新驗證有限的選項
使用內(nèi)置轉(zhuǎn)義函數(shù)
驗證正確的數(shù)據(jù)類型(如數(shù)字)
白名單中的值(White-listed value)是正確的值,與無效的黑名單值(Black-listed value)相對。兩者之間的區(qū)別是,通常在進行驗證數(shù)據(jù)時,可能值的列表或范圍小于無效值的列表或范圍,其中許多值可能是未知值或意外值。
在保證PHP安全而進行驗證數(shù)據(jù)時,記住設(shè)計并驗證應(yīng)用程序允許使用的值通常比防止所有未知值更容易。例如,要把字段值限定為所有數(shù)字,需要編寫一個確保輸入全都是數(shù)字的例程。不要編寫用于搜索非數(shù)字值并在找到非數(shù)字值時標(biāo)記為無效的例程。