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--

그리고 다른 플랫폼의 다른 브라우저에서 그것을 재현할 수 있었습니다. 이것이 아파치 문제입니까? 어쩌면 PHP? 내가 어떻게 알 수 있니?

웹 사이트에서 보안 감사를 실행하는 동안 이것을 발견했습니다. 실행 중인 SQL Server가 없지만 감사에서 문제를 보고합니다. 그리고 특정 문자열이 왜 그러한 동작을 유발하는지 궁금합니다.

편집하다:누구든지 관심이 있는 경우를 대비해 위에서 설명한 동작은 PHP 코드에 전혀 의존하지 않는다는 것을 알았습니다. 실제로 Fiddler를 통해 서버에 존재하지 않는 페이지에 POST 요청을 보내는 경우 게시물 콘텐츠에 앞서 언급한 문자열이 포함된 일부 필드가 포함되어 있으면 요청에 응답하지 않습니다. 그래서 이것은 Apache 문제인 것 같습니다.

관련 정보