我正在以这种方式过滤用户输入
$id= intval($_REQUEST['id']);
我只接受整数在$id
中。
还有什么我可以使用来使其更加安全?
谢谢!
你可以使用filter_var
<?php
$var = filter_var('0755', FILTER_VALIDATE_INT);
?>
神奇的事情在于,您可以进行更复杂的验证,例如(最小长度、默认值等),请查看php.net的filter_var页面。
再强调一下你的问题:
我是用以下方式过滤用户输入 $id= intval($_REQUEST['id']); 我只接受$id中的整数。 还有什么其他方法可以使其更安全吗?
我认为您可以使用ctype_digit($id)进行True:False过滤。
您只接受$id中的整数,什么是整数:整数是一种不带分数或小数部分的数字。例如,21、4和−2048是整数;9.75、5½和√2不是整数。整数集合是实数的子集,由自然数(1、2、3,...)、零(0)和自然数的负数(−1、−2、−3,...)组成。> 来自维基百科
$_REQUEST
是$_GET
、$_POST
和$_COOKIE
的联合体。你无法确定该值的来源。 - Gumbo