Apache: Eine bestimmte Zeichenfolge führt dazu, dass die POST-Anforderung hängen bleibt

Apache: Eine bestimmte Zeichenfolge führt dazu, dass die POST-Anforderung hängen bleibt

Hier ist ein minimal funktionierendes Beispiel für mein Problem. Ich weiß inzwischen, dass der Fehler anscheinend nur bei meinem Server/Setup auftritt, aber ich bin trotzdem neugierig, was los ist. Es gibt zwei Dateien, m1.php und 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);
?>

Alles funktioniert wie erwartet (wenn Sie auf OK klicken, wird das Array mit dem Wert aus dem Eingabefeld gedruckt), mit dieser Ausnahme: Wenn die von mir eingegebene Zeichenfolge

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

das Formular wird nicht verarbeitet. Das Löschen nur eines Zeichens aus der obigen Zeichenfolge funktioniert problemlos.

Beim Überprüfen der Serverprotokolle wird festgestellt, dass bei der Eingabe der obigen Zeichenfolge keine POST-Anforderung im Protokoll angezeigt wird, während dies bei jeder anderen Zeichenfolge der Fall ist, die mir einfällt. Das Problem scheint serverseitig zu sein, da Fiddler die POST-Anforderung mit Inhalt anzeigt

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

und ich konnte es in verschiedenen Browsern auf verschiedenen Plattformen reproduzieren. Ist das ein Apache-Problem? Vielleicht PHP? Wie könnte ich das feststellen?

Ich habe dies festgestellt, als ich ein Sicherheitsaudit auf der Website durchführte. Es läuft kein SQL-Server, aber das Audit meldet das Problem. Und ich bin neugierig, warum diese bestimmte Zeichenfolge ein solches Verhalten auslöst.

Bearbeiten:falls es jemanden interessiert, mir ist gerade aufgefallen, dass das oben beschriebene Verhalten überhaupt nicht vom PHP-Code abhängt. Tatsächlich bleibt die Anfrage unbeantwortet, wenn ich über Fiddler eine POST-Anfrage an eine nicht vorhandene Seite auf meinem Server sende, solange der Post-Inhalt ein Feld mit der oben genannten Zeichenfolge enthält. Es scheint also ein Apache-Problem zu sein.

verwandte Informationen