在输入上使用 HTML 必需属性是否被视为验证?
Is using a HTML required attribute on an input considered validation?
我目前正在处理注册表单,我决定添加一些必填字段,例如电子邮件、密码等。
我想对必填字段做的唯一验证就是不为空,所以我在输入元素中使用了 required 属性。
这里安全吗?还是我需要使用额外的 PHP 验证?
它可能是安全的,只要最新的浏览器完全支持该属性。但我不知道如果有人使用旧版本的浏览器会发生什么,所以如果你对此感到害怕,PHP 验证不会太多。
如果你想要一个很好的注册表示例,请私信我,我会发给你!
服务器端验证更好(如果我们甚至不能说需要的话),而且制作起来真的很容易。
如果需要,这里有一个例子:
if(!empty($_POST['pseudo']) && !empty($_POST['password'])) {
//Prevent SQL injection (if you use DB here)
$pseudo = addslashes($_POST['pseudo']);
$password = addslashes($_POST['password']);
}
addslashes()
不是最好的方法,但适用于任何数据库引擎,例如,如果您有 MySQL 引擎,最好使用 mysql_real_escape_string()
。
以及关联的表格:
<form method="post" action="#">
<label for="pseudo">Identifiant</label>
<input type="text" name="pseudo" required>
<label for="password">Mot de passe</label>
<input type="password" name="password">
<input type="submit" value="Connexion" required>
</form>
使用网页发送表单并不是发送表单的唯一方式。
有人可以通过其他设备向您发送表单,或者绕过您的必填字段并向您发送空数据或不需要的数据,例如 PHP 注入。
您应该进行服务器端验证。
我目前正在处理注册表单,我决定添加一些必填字段,例如电子邮件、密码等。
我想对必填字段做的唯一验证就是不为空,所以我在输入元素中使用了 required 属性。
这里安全吗?还是我需要使用额外的 PHP 验证?
它可能是安全的,只要最新的浏览器完全支持该属性。但我不知道如果有人使用旧版本的浏览器会发生什么,所以如果你对此感到害怕,PHP 验证不会太多。
如果你想要一个很好的注册表示例,请私信我,我会发给你!
服务器端验证更好(如果我们甚至不能说需要的话),而且制作起来真的很容易。
如果需要,这里有一个例子:
if(!empty($_POST['pseudo']) && !empty($_POST['password'])) {
//Prevent SQL injection (if you use DB here)
$pseudo = addslashes($_POST['pseudo']);
$password = addslashes($_POST['password']);
}
addslashes()
不是最好的方法,但适用于任何数据库引擎,例如,如果您有 MySQL 引擎,最好使用 mysql_real_escape_string()
。
以及关联的表格:
<form method="post" action="#">
<label for="pseudo">Identifiant</label>
<input type="text" name="pseudo" required>
<label for="password">Mot de passe</label>
<input type="password" name="password">
<input type="submit" value="Connexion" required>
</form>
使用网页发送表单并不是发送表单的唯一方式。
有人可以通过其他设备向您发送表单,或者绕过您的必填字段并向您发送空数据或不需要的数据,例如 PHP 注入。
您应该进行服务器端验证。