PHP中的输入过滤

PHP中的输入过滤,php,security,filtering,Php,Security,Filtering,我用这种方式过滤用户输入 $id= intval($_REQUEST['id']); 我只接受$id中的整数 还有什么可以让它更安全的吗 谢谢 您可以使用 有趣的是,您可以进行更复杂的验证(最小长度、默认值等),检查php.net的filter\u var页面。如果您使用的是足够新的php版本,您可以使用验证输入。只需重复您的问题: 我用这种方式过滤用户输入 $id=intval($_请求['id']); 我只接受$id中的整数。 还有什么可以让它更安全的吗 我想你可以通过使用ctype_

我用这种方式过滤用户输入

$id= intval($_REQUEST['id']);
我只接受
$id
中的整数

还有什么可以让它更安全的吗

谢谢

您可以使用



有趣的是,您可以进行更复杂的验证(最小长度、默认值等),检查php.net的filter\u var页面。

如果您使用的是足够新的php版本,您可以使用验证输入。

只需重复您的问题:

我用这种方式过滤用户输入 $id=intval($_请求['id']); 我只接受$id中的整数。 还有什么可以让它更安全的吗

我想你可以通过使用ctype_digit($id)来过滤True:False


您只接受$id中的整数,什么是整数:整数是一个可以不使用小数或十进制成分写入的数字。例如,21、4和−2048是整数;9.75、5½和√2不是整数。整数集是实数的子集,由自然数(1,2,3,…)、零(0)和自然数的负数组成(−1.−2.−3, ...). > 摘自维基百科

之后你用“id”做什么?将其作为数据库?请注意,
$\u REQUEST
$\u GET
$\u POST
$\u COOKIE
的联合体。您无法说出该值的来源。
$id=intval($\u REQUEST['id'])。这不是验证。对于输入清理来说,这已经足够了。你应该告诉你的用户他做错了什么,因为intval()在他不知道的情况下修改了他的输入。
<?php
$var = filter_var('0755', FILTER_VALIDATE_INT);
?>