Как проверить, что заголовок HTTP изменен пользователем - PullRequest
0 голосов
/ 31 октября 2011

Некоторые веб-браузеры имеют расширения / надстройки, например.FireFox с Modify Header или Tamper Data, которые могут изменять HTTP-заголовок для метода GET / POST перед отправкой его на сервер.

Итак, как я могу проверить, что заголовок изменяется пользователем со стороны сервера?

Ответы [ 3 ]

0 голосов
/ 31 октября 2011

Вы не можете, если значения заголовка недопустимы.Если они редактируют значения заголовка во время сеанса, вы можете проверить браузер и другие поля заголовка и сохранить их в сеансе, а затем убедиться, что они не изменились.т. е. если в течение сеанса изменяется $ _SERVER ['HTTP_USER_AGENT']], собранный из заголовка, тогда заголовок был подделан.

Однако, если значения заголовка действительны и не являются неожиданными, т.е. если вы получаете запросы на значения, которые страница не использует, проходя через массив $ _GET [''], вы вернете вам всю информациюотправлено через GET, и если вы получаете слишком много или значения, которые не нужны, вы можете позвонить die или записать его.Вы хотите проверить это, все языки имеют эквивалентные методы.

0 голосов
/ 31 октября 2011

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

Если вы пытаетесь убедиться, что клиенты никогда не отправляют файлы cookie, которые не были установлены вашим приложением (или что-то подобное), вы не должны делать никаких подобных предположений. Всегда предполагайте, что данные, отправленные удаленным пользователем, являются вредоносными, и используйте их с осторожностью. Вместо этого вы можете подписать файлы cookie с помощью HMAC, чтобы никто не смог создать действительный файл cookie без вашего секретного ключа.

0 голосов
/ 31 октября 2011

Поскольку все заголовки поступают от клиента как часть HTTP-запроса, по сути все они модифицируются клиентом.Вы не можете сказать, какие заголовки были добавлены / изменены плагинами, по крайней мере, не с уверенностью.Лучшее, что вы можете сделать, это попытаться собрать некоторые эвристические данные и попытаться идентифицировать известные модификации из определенных плагинов (например, плагин "Foo" всегда добавляет заголовок "XYZ", который выглядит как "Foo bar baz"), но даже тогда выОбязательно получите много ложных срабатываний или негативов.

Вопрос в том, почему вы хотите это знать?Если вы полагаетесь на информацию в заголовке (куки и т. Д.), Вы можете зашифровать эти данные на стороне сервера.Это защитит его от модификаций на стороне клиента.

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