Php 我是否正确实施输入消毒?

Php 我是否正确实施输入消毒?,php,forms,input-sanitization,Php,Forms,Input Sanitization,我已经为这个问题删去了这个代码 我的用户将通过表单输入他们的配送详细信息,我已尝试对输入进行消毒。就成功发布数据而言,一切都按预期进行。我的问题更多的是关于良好的php实践 $address_line1 = filter_var($_POST['address_line1'], FILTER_SANITIZE_STRING); $address_line2 = filter_var($_POST['address_line2'], FILTER_SANITIZE_STRING); $addres

我已经为这个问题删去了这个代码

我的用户将通过表单输入他们的配送详细信息,我已尝试对输入进行消毒。就成功发布数据而言,一切都按预期进行。我的问题更多的是关于良好的php实践

$address_line1 = filter_var($_POST['address_line1'], FILTER_SANITIZE_STRING);
$address_line2 = filter_var($_POST['address_line2'], FILTER_SANITIZE_STRING);
$address_city = filter_var($_POST['address_city'], FILTER_SANITIZE_STRING);;
$address_state = filter_var($_POST['address_state'], FILTER_SANITIZE_STRING);
$address_country = filter_var($_POST['address_country'], FILTER_SANITIZE_STRING);
$address_zip = filter_var($_POST['address_zip'], FILTER_VALIDATE_INT);
我用谷歌搜索过,据我所知,
filter\u var()
函数将去掉所有HTML标记,以便只为基于文本的输入留下一个字符串,为
address\u zip
输入留下一个整数

这是过滤不必要的输入的正确方法吗?和/或如果有进一步的措施来考虑安全用户输入?

如何测试
filter\u var()
函数?
我是否应该简单地发布类似于《你好,世界》
这是输入消毒的充分测试吗

我们永远感激你的帮助

谢谢大家


Moe

问题是。。你打算在哪里使用它。如果要插入到数据库中,使用准备好的语句
filter\u var()
几乎是过时的。@否则,信息将包含在一个mail()函数中,以将信息发送到我的电子邮件。为什么filter_var()过时了?@Moe-Joe因为准备好的语句可以保护sqlinjections@Moe-乔:我会的。如果filter_val确实删除了html标记,而您只是发送html电子邮件,那么您应该good@Moe-Joe如果您没有将数据存储在数据库中,那么就不要这样做