在學習您的用戶可能十分優秀,並且大多數用戶可能完全按照期望來使用應用程序。但是,只要提供了輸入的機會,也就極有可能存在非常糟糕的輸入。作為一名應用程序開發人員,您必須阻止應用程序接受錯誤的輸入。仔細考慮用戶輸入的位置及正確值將使您可以構建一個健壯、安全的應用程序。
下面列出了適用於各種驗證數據的一般驗證提示:
使用白名單中的值
始終重新驗證有限的選項
使用內置轉義函數
驗證正確的數據類型(如數字)
白名單中的值(White-listed value)是正確的值,與無效的黑名單值(Black-listed value)相對。兩者之間的區別是,通常在進行驗證數據時,可能值的列表或范圍小於無效值的列表或范圍,其中許多值可能是未知值或意外值。
在保證PHP安全而進行驗證數據時,記住設計並驗證應用程序允許使用的值通常比防止所有未知值更容易。例如,要把字段值限定為所有數字,需要編寫一個確保輸入全都是數字的例程。不要編寫用於搜索非數字值並在找到非數字值時標記為無效的例程。