Apache: определенная строка приводит к зависанию POST-запроса

Apache: определенная строка приводит к зависанию POST-запроса

Вот минимальный рабочий пример проблемы, с которой я столкнулся. Я знаю, что ошибка, похоже, связана с моим сервером/настройкой, но мне все еще интересно, что происходит. Есть два файла, m1.php и m2.php:

m1.php

<form action="m2.php" method="post">
<br> <input type="text" name="j" />
<input type="submit"  VALUE="Ok"  />
</form>

m2.php

<?php  
print_r($_POST);
?>

Все работает так, как и ожидалось (когда вы нажимаете «ОК», он печатает массив со значением из поля ввода) за одним исключением: если строка, которую я ввожу, это

VALUE';WAITFOR DELAY '00:00:24';--

форма не обрабатывается. Удаление всего одного символа из строки выше работает без проблем.

Проверяя журналы сервера, когда указанная выше строка является входом, в журнале не появляется запрос POST, хотя он появляется с любой другой строкой, которую я могу придумать. Проблема, похоже, на стороне сервера, так как Fiddler показывает запрос POST с содержимым

j=VALUE%27%3BWAITFOR+DELAY+%2700%3A00%3A24%27%3B--

и я мог воспроизвести это в разных браузерах с разных платформ. Это проблема Apache? Может быть php? Как я могу это определить?

Я обнаружил это во время аудита безопасности на веб-сайте. SQL-сервер не запущен, но аудит сообщает о проблеме. И мне интересно, почему эта конкретная строка вызывает такое поведение.

Редактировать:если кому интересно, я только что заметил, что описанное выше поведение вообще не зависит от кода php. Фактически, если я отправляю через Fiddler запрос POST на несуществующую страницу на моем сервере, то пока содержимое поста включает в себя какое-то поле с вышеупомянутой строкой, запрос остается без ответа. Так что, похоже, это проблема Apache.

Связанный контент