有效的数据验证对于安全且健壮的Web表单至关重要。 无效的数据可以创建安全漏洞和网站故障。本教程演示了PHP的filter_var
功能如何有效地消毒和验证用户输入,从而阻止了这些问题。
与每个可能的输入变化的详尽比较。
>php's
功能简化了过程。它的语法为:filter_var
filter_var
:要过滤的数据。
filter_var( mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0 ): mixed
$value
)。$filter
:用于滤波器自定义的可选参数。 返回过滤器失败。FILTER_SANITIZE_EMAIL
FILTER_VALIDATE_INT
$options
进行消毒数据
FALSE
filter_var
过滤器从电子邮件地址中删除非法字符。 例如:> URL消毒:
FILTER_SANITIZE_EMAIL
同样,
$email = "test\"';DROP TABLE users;--@example.com"; $sanitizedEmail = filter_var($email, FILTER_SANITIZE_EMAIL); echo $sanitizedEmail; // Outputs: test@example.com (malicious script removed)
>用 验证数据
IP地址验证:FILTER_SANITIZE_URL
$url = "http://example.com/?param=<🎜>"; $sanitizedUrl = filter_var($url, FILTER_SANITIZE_URL); echo $sanitizedUrl; // Outputs: http://example.com/?param= (script removed)
filter_var
实用应用程序:电子邮件提交表格 >让我们构建一个简单的电子邮件提交表格,以说明数据消毒和验证。 表格收集:名称,电子邮件,主页和消息。 只有有效的数据触发电子邮件提交。
$ip = "127.0.0.1"; if (filter_var($ip, FILTER_VALIDATE_IP)) { // Valid IP address } else { // Invalid IP address }
步骤1:创建form(form.html):
$foo = "123"; if (filter_var($foo, FILTER_VALIDATE_INT)) { // Valid integer } else { // Invalid integer }
(注意:原始示例中的完整验证和消毒逻辑应插入>中的>。
结论<form method="post" action="form-email.php"> Name: <input type="text" name="name"><br><br> Email Address: <input type="email" name="email"><br><br> Home Page: <input type="url" name="homepage"><br><br> Message: <textarea name="message"></textarea><br><br> <input type="submit" name="Submit" value="Send"> </form>
本教程为使用PHP的数据过滤功能提供了基础。虽然并不详尽,但它显示了安全可靠的数据处理的效率。 有关更高级的技术,请参阅PHP手册的数据过滤部分。 该图像是使用OpenAi的Dall-E 2生成的。
以上是用PHP过滤器消毒和验证数据的详细内容。更多信息请关注PHP中文网其他相关文章!