谷歌搜索后,我看到一些评论说php的函数filter_var($var, FILTER_STRING);
不可靠或不起作用。参考:What does FILTER_SANITIZE_STRING do?
请参阅ÁlvaroGonzález的最新评论。
如果是这样,假设我使用正则表达式为我的过滤器提供我想要的用户输入数据,并使用准备 语句<始终插入数据< / strong>,是不是最安全的接受用户输入的方式?我的理由是使用正则表达式,我将始终只获得我想要的数据类型。
看看这个剧本:
<?php
$string = "Th*()is 999 is <<>> a ~!@# sample st#$%ring.";
$res = preg_replace("/[^a-zA-Z]/", "", $string);
echo $res;
?>
输出Thisisasamplestring
攻击者怎么能绕过那个?我们正在谈论sql注入攻击等。