PHP 中的输入过滤


Input filtering in PHP

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

$id= intval($_REQUEST['id']);

我只接受$id中的整数.

还有什么可以用来使其更安全的吗?

谢谢!

如果您使用的是足够新的 PHP 版本,则可以使用过滤器扩展来验证您的输入。

您可以使用

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、51/2 和 √2 不是整数。整数集是实数的子集,由自然数 (1, 2, 3, ...)、零 (0) 和自然数的负数 (−1, −2, −3, ...) 组成。> 取自维基百科