Управляется ли $ _SERVER [REQUEST_METHOD]? - PullRequest
4 голосов
/ 07 декабря 2008

В проекте PHP, который я разрабатываю, у меня есть пара запросов, которые могут быть POST или GET. В настоящее время я использую значение $ _SERVER [REQUEST_METHOD], чтобы определить, какой массив запросов использовать. Я знаю, что значения $ _REQUEST можно манипулировать с помощью файлов cookie. Является ли суперглобальный $ _SERVER уязвимым для атак?

Ответы [ 4 ]

7 голосов
/ 07 декабря 2008

Суперглобальный $ _SERVER заполнен PHP данными, полученными с веб-сервера.

Таким образом, если злоумышленник не заменит веб-сервер своим собственным или не справится с чрезвычайно удачным переполнением буфера на сервере, у вас все в порядке.

0 голосов
/ 11 декабря 2010

Старый поток, но так как ответ с наибольшим количеством голосов является неправильным, и безопасность является важной проблемой, здесь мы идем: не только REQUEST_METHOD, но и другие значения в $ _SERVER могут быть испорчены.

См. Например http://www.php.net/manual/en/reserved.variables.server.php#95672 и http://shiflett.org/blog/2006/mar/server-name-versus-http-host

Так что не доверяй им слепо.

0 голосов
/ 07 декабря 2008

В каком смысле $ _REQUEST можно «манипулировать» куки-файлами? Файлы cookie переопределяют значения, поступающие из POST и GET, но все три значения напрямую контролируются клиентом, выполняющим запрос.

Если вы хотите, чтобы GET и POST имели приоритет над файлами cookie, вы можете установить переменную request_order в вашем php.ini:

request_order = CGP

(что дает post' priority over get 'поверх куки). Вы даже можете вообще пропустить букву C.

0 голосов
/ 07 декабря 2008

REQUEST_METHOD не ограничивается POST и GET, хотя - вам также нужно обрабатывать HEAD (IIRC PHP завершит скрипт при первом признаке вывода, когда увидит этот заголовок), и (при маловероятных установках) вы можете получить несколько WebDAV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...