所以我正在註冊表單上,我有四個字段:名稱,用戶名,電子郵件和密碼。我在jQuery中獲取這些字段的值,並根據是否所有字段都已填充,我通過ajax將它們傳遞給PHP腳本。對於表單驗證安全嗎?我擔心數據被用戶操縱。表單驗證 - 安全
進一步在PHP腳本中,我檢查是否所有發佈的值都有數據,只有這樣我才能繼續進行一些驗證......驗證是我擔心它不是最好的部分而且它有很多缺陷。
$name = $_POST['name'];
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
if (!preg_match("/^[A-Za-z '-]+$/i", $name)) {
$errors = "Please enter a valid name.";
} else if (!preg_match("/^[A-Za-z]+\s[A-Za-z]+$/", $name)) {
$errors = "Please enter your first and last name.";
} else if (strlen($username) <= 3 || strlen($username) > 15) {
$errors = "Please pick a username between 4 - 15 characters. Be creative.";
} else if (!preg_match("/^[A-Za-z][A-Za-z0-9_.-]{4,15}$/", $username)) {
$errors = "Please pick an alphanumeric username between 4 - 15 characters.";
} else if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
$errors = "Please enter a valid email.";
} else if (strlen($username)< 6 || strlen($username) > 32) {
$errors = "Your password must atleast be 6 characters.";
} else {
echo "valid";
}
這些驗證步驟是否安全?是否有任何用戶可以操縱數據的循環漏洞?此外,我希望輸入全名,用戶將輸入第一個姓和姓。這些夠好嗎?
謝謝。
看起來好像沒什麼問題.... –
或許它應該去http://codereview.stackexchange.com –
「安全」 沒什麼意思與斷章取義 – 2013-08-26 03:54:42