Фильтрация входных данных в PHP


Я фильтрую пользовательский ввод таким образом

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

Я принимаю только целые числа в $id.

Есть ли что-нибудь еще, что я могу использовать, чтобы сделать его более безопасным?

Спасибо!

3   4   2011-05-22 13:22:50

3 ответа:

Если вы используете достаточно свежую версию PHP, вы можете использовать расширение фильтра для проверки Вашего ввода.

Вы можете использовать filter_var

<?php
$var = filter_var('0755', FILTER_VALIDATE_INT);
?>

Хорошая вещь заключается в том, что вы можете сделать более сложную проверку, как это (минимальная длина, значение по умолчанию и т. д.), проверка php.net страница filter_var.

Просто повторите свой вопрос:

Я фильтрую пользовательский ввод таким образом $id= intval($_REQUEST ['id']); Я принимаю только целые числа в $id. Есть ли что-нибудь еще, что я могу использовать, чтобы сделать его более безопасным?

Я думаю, что вы могли бы просто сделать фильтр True: False с помощью ctype_digit ($id);

Вы принимаете только целые числа в $id, что такое целое число: целое число-это число, которое может быть записано без дробной или десятичной составляющей. Например, 21, 4, и -2048 целые; 9.75, 5½, и √2 не являются целыми числами. Множество целых чисел является подмножеством действительных чисел и состоит из натурального числа (1, 2, 3,...), ноль (0) и отрицательные значения натуральных чисел (-1, -2, -3, ...). > Взят из Википедии