Есть ли смысл проверки в коде: $_SERVER['REQUEST_METHOD'] == 'TRACE' ?

Тема в разделе "PHP", создана пользователем dandandan, 30 апр 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    996
    Симпатии:
    268
    Нашел в интернете. Есть ли смысл использовать эту конструкцию?
    Код:
    	// --- Отсечение TRACE метода и глобальных параметров
    	if($_SERVER['REQUEST_METHOD'] == 'TRACE'){ die('Bad Request.'); }
    	if(isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])){ die('Bad Request.'); }
    	if(!is_array($GLOBALS)){ die('Bad Request.'); }
    
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Разве только при особой параное.

    Хотя многое зависит от того, что делает сам скрипт.
     
  3. [Гилыч]

    [Гилыч] Постоялец

    Регистр.:
    5 авг 2008
    Сообщения:
    57
    Симпатии:
    17
    9.8 TRACE.

    Метод TRACE используется для вызова удаленного возврата сообщения запроса на уровне приложения. Конечному получателю запроса СЛЕДУЕТ отразить полученное сообщение обратно клиенту как тело объекта ответа с кодом состояния 200 (OK). Конечным получателем является либо сервер происхождения, либо первый прокси-сервер, либо первый шлюз, получивший нулевое значение (0) в поле Max-Forwards в запросе (см. раздел 14.31). Запрос TRACE НЕ ДОЛЖЕН содержать объекта.

    TRACE позволяет клиенту видеть, что получается на другом конце цепочки запросов и использовать эти данные для тестирования или диагностической информации. Значение поля заголовка Via (раздел 14.44) представляет особый интерес, так как оно действует как след цепочки запросов. Использование поля заголовка Max-Forwards позволяет клиенту ограничивать длину цепочки запросов, что является полезным при тестировании бесконечных циклов в цепочке прокси-серверов, пересылающих сообщения.

    Если запрос успешно выполнен, то ответу СЛЕДУЕТ содержать все сообщение запроса в теле объекта (entity-body), а Content-Type следует быть равным "message/http". Ответы на этот метод НЕ ДОЛЖНЫ кэшироваться.
     
  4. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    996
    Симпатии:
    268
    :D Прочитал описание для Trace. Каждое слово отдельно понимаю, а предложения уже нет. Видимо не дорос еще. Тогда перефразирую по другому. Можно ли как-нибудь с помощью trace сделать что-нибудь нехорошее.

    Самая простая CMS. Менюшка и вывод данных по ссылкам менюшки.
     
  5. [Гилыч]

    [Гилыч] Постоялец

    Регистр.:
    5 авг 2008
    Сообщения:
    57
    Симпатии:
    17
    я думаю в простых вариантах ничего срашного не будет!
     
  6. alpine

    alpine Создатель

    Регистр.:
    23 сен 2007
    Сообщения:
    12
    Симпатии:
    9
    Лучше подстраховаться, не убудет. С помощью TRACE можно иногда угнать куки. Поскольку значения cookie передаются на сервер вместе с запросом, то становится ясна возможность использования запроса TRACE для наших темных дел :)
     
  7. Dogmat

    Dogmat Постоялец

    Регистр.:
    16 фев 2007
    Сообщения:
    122
    Симпатии:
    38
    Сам то понял что сказал?

    Код абсолютно бессмысленен. Писал его самый что ни на есть быдло-кодер.

    ну и? что с того? от тебя убудет если выполнится скрипт? каким образом метод вызова может нарушить работу скрипта? никаким.


    переменные в _REQUEST Заносятся из _GET & _POST параметров
    это все равно что проверять isset($_GET['GLOBALS']), isset($_POST['GLOBALS'])
    бред.

    в массиве _FILES ключами являются исключительно названия полей вместе с которыми передаются файлы на сервер. Смысл исключать именно такое название?

    $GLOBALS по определению массив.



    Вывод: КодоБред первого сорта.
     
  8. SiMM

    SiMM Создатель

    Регистр.:
    8 фев 2009
    Сообщения:
    41
    Симпатии:
    6
    Поправочка - + _COOKIE
     
Статус темы:
Закрыта.