вот делал проверки на приходящии перемные гетом, как этот код по безапастности? может чего добавить? PHP: reset ($_GET); while (list($key, $value)=each($_GET)) { $key=htmlspecialchars(trim(substr($value, 0, 255))); }
Нагружен сильно, проверять надо не все данные а только те которые нуждаются в проверке, а уж править и тем более...
wedest Понимаешь, не бывает абстрактной проверки на безопасность. Проверять надо конкретные переменные, в зависимости от того, что они делают. К примеру, если ты передаёшь имя файла, то надо проверять, чтобы оно было не зловредным. А просто так сказать, что делать с переменными $_GET - ничего нельзя А вообще, твой код ничего не защищает и не меняет.
PHP: <? // Защита от нецелочисленных GET-переменных function int_protect($what) { if (empty ($what)) return 0; else { if ((string) $what != (string)(int) $what) { die ("<b>Внимание!</b><br>Зафиксирована попытка взлома.<br>"); } else return $what; } } ?>
Код переписывает одну и ту же переменную. Ближе наверно так PHP: $list = array_flip(array(\"key1\", \"key2\", \"key3\", \"key4\")); #Перечисляем разрешенные к обработке переменные while (list($key, $value)=each($list)){ if (isset($_GET[$key])) $$key=htmlspecialchars(trim(substr($_GET[$key], 0, 255))); #Если есть то определяем для дальнейшего использования. } В этом случае у тебя не будут обрабатываться переменные которые ты не используеш в скрипте.