Нужно ли как-то обрабатывать $_GET-переменную в header()?

Тема в разделе "Защита и взлом", создана пользователем verfaa, 13 май 2013.

Статус темы:
Закрыта.
  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    371
    Симпатии:
    41
    Скрипт принимает от пользователя переменную $_GET, затем делает URL с этой переменной и перенаправляет юзера по этому адресу.
    Кусок кода выглядит так:
    Код:
    $url = "/site/path/".$_GET["param"]."/";
    header("location: ".$url);
    
    Нужно ли в этом случае как-то обрабатывать переменную $_GET["param"] ?
    И если да, приведите пример, как можно атаковать такой участок кода.
    И еще, если нужно обрабатывать, какими функциями это лучше всего сделать?
     
  2. Nei

    Nei Nosce te ipsum

    Регистр.:
    5 сен 2009
    Сообщения:
    601
    Симпатии:
    468
    Если $_GET["param"] - число, то желательно его привести к числовому типу.
    Если строка, то проверить регуляркой, чтобы там были только цифры, английские буквы или символ дефиса, к примеру.

    P.S. Поиск кстати никто еще не отменял ;)
    https://www.nulled.cc/threads/68926/
     
    verfaa нравится это.
  3. Иванвован

    Иванвован Писатель

    Регистр.:
    4 июн 2013
    Сообщения:
    1
    Симпатии:
    0
    preg_match("/^[a-zа-я0-9_]$/",$_GET["param"])
     
Статус темы:
Закрыта.