Почему параметр GET появляется в URL, а не в скрипте php - PullRequest
0 голосов
/ 26 марта 2012

У меня есть такой URL:

https://domain.com/myscript.php?par=<div>x12.l3 sdfa <div>

Но когда я делаю

var_dump($_REQUEST);

при запуске моего PHP-скрипта параметр не указан (ключ "par" не отображается).

Значением par является некоторые html-данные, включая не экранированные теги и пробелы. Может ли это быть причиной того, что par не появляется в var_dump?

Но когда я запускаю точно такой же скрипт с тем же параметром в localhost:

https://localhost/myscript.php?par=<div>x12.l3 sdfa <div>

хорошо работает.

Я сравнил с обоими инструментами URL-адреса, начинающиеся с "myscript.php", они совпадают. Так почему я не получаю параметр на сервере, а на локальном хосте?

Возможно, это связано с настройкой PHP? Это единственное, о чем я могу думать, это может быть по-другому.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 26 марта 2012

Если вы используете этот сценарий на сервере общего хостинга или на сервере, который был кем-то настроен, вполне вероятно, что существуют определенные меры безопасности для защиты от переменных GET, таких как опубликованная вами.

Меры могут включать mod_security, аппликативные брандмауэры и другие.

0 голосов
/ 25 августа 2012

изменение https://domain.com/myscript.php?par=<div>x12.l3 sdfa <div> до https://domain.com/myscript.php?$par=<div>x12.l3 sdfa <div>

но $ до пар. надеюсь, что это работает:)

0 голосов
/ 29 марта 2012

Да, это была другая конфигурация сервера. В этом конкретном случае допустимая длина параметров GET (или URL, не уверен).

...