- Не все должно быть разрешено отправлять с формой пользователем, но любой тег не является причиной для отказа от браузера или сервера httpd.
- Веб-сервер может отклонить какой-либо запрос, особенно по загруженному модулю mod_rewrite с неправильной конфигурацией,
- ... но какой смысл писать
#
вместо сообщения об ошибке.
- Основной страх состоит в том, что HTTP-запросы могут отличаться, может быть, какой-то механизм против XSS случайно что-то поймает? Но, как показала жизнь, проблема здесь была как-то связана с кешем, языком контента по умолчанию и сохраненными куки.
Исходная проблема вопроса касается только XAMPP <=> MS Edge и не имеет ничего общего с PHP-скриптами или кодировкой UTF-8. В сообществе установлено, что метатег с набором символов должен использоваться в качестве механизма безопасности, но чего не следует ожидать, так это того, что этот метатег может потенциально повлиять на показ содержимого сайта или просто #
. Следует подчеркнуть, что похожая проблема заключается в том, что не появляется с другими тегами. Простейший случай, когда сценарий можно повторить, - это метод GET, отправляющий данные формы даже в файл HTML.
http://127.0.0.1/?data=%3Cmeta+http-equiv%3D%22%22+%2F%3E
У других приличных установок сервера Apache таких проблем нет (я пробовал apachelounge в Windows и установки Apache в разных дистрибутивах linux). Поэтому я утверждаю, что воспроизведение проблемы может быть затруднено и может зависеть от конкретной установки.
Самое простое решение заключается в использовании другой версии XAMPP или другой реализации сервера httpd .
Тем, кто мне любопытен, до сих пор не объяснено, почему на сервере XAMPP возникает проблема с запросами только от MS Edge. Типичный HTTP-запрос
GET /?data=%3Cmeta+http-equiv%3D%22%22+%2F%3E HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
, кажется, не имеет ничего необычного. Существует очевидная разница User-Agent
с MS Edge
GET /?data=%3Cmeta+http-equiv%3D%22%22+%2F%3E HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134
Accept-Language: pl-PL
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Upgrade-Insecure-Requests: 1
Accept-Encoding: gzip, deflate
Host: 127.0.0.1
Connection: Keep-Alive
Cookie: PHPSESSID=*********
и Cookie , и Accept-Language : только pl-PL. К моему удивлению, оказалось, что очистка данных браузера решила мою проблему.