所以我正在处理一个注册表单,我有四个字段:姓名、用户名、电子邮件和密码。我在 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";
}
这些验证步骤是否安全?是否存在用户可以操纵数据的任何漏洞?另外,我希望输入全名,用户会输入名字和姓氏。这些够好吗?
谢谢你。