我正在使用PDO的bindParam。
该功能检查网站上的每个GET变量。更改后,它将回显它:
function Check_Get_Param($val){
$value1=addslashes($val);
$string1=htmlspecialchars($value1);
$string2=strip_tags($string1);
$string3=intval($string2);
return $string3;
}
此处将输出结果:
Check_Get_Param($_GET['id']);
现在的想法是任何id或id = any或id =%
$_GET['id'] = %
将导致0
,因为%
不是整数。如何也允许%
?如何修改此功能或可以过滤GET参数的任何其他功能,以使网络不被注射?
最佳答案
PHP 5(版本> = 5.2.0)具有一组方便的数据过滤功能。这些功能可以验证电子邮件和URL之类的常见内容,否则它们将需要复杂的正则表达式,但这些表达式通常不会起作用。这些功能是filter_var(),filter_input(),filter_id()等。
这样,您不必通过$ _GET或$ _POST数组来触摸原始输入。请参阅文档中提供的示例。