PHP의 개입 없이 멀티파트/양식 데이터 POST 요청 구문 분석
멀티파트 처리 시 php://input 및 $HTTP_RAW_POST_DATA의 제한에도 불구하고 /form-data POST 요청, 원시 데이터에 액세스할 수 있는 방법이 있습니다.
RAW 다중 부분/양식 데이터 구문 분석의 과제
PHP는 다중 부분/양식 데이터 요청을 자동으로 구문 분석하므로 원시 데이터를 직접 얻을 수 없습니다. 이는 PHP가 구문 분석할 수 없는 잘못된 형식의 데이터를 처리할 때 문제가 될 수 있습니다.
한계를 우회하는 해킹
해결책은 Apache 구성을 사용하여 요청 헤더를 수정하는 데 있습니다. 지령. Content-Type을 multipart/form-data에서 multipart/form-data-alternate로 변경하면 PHP가 요청을 구문 분석하지 않도록 속입니다.
Apache 구성 수정
다음 코드를 Apache 구성에 추가할 수 있습니다.
<Location "/backend/XXX.php"> SetEnvIf Content-Type ^(multipart/form-data)(.*) NEW_CONTENT_TYPE=multipart/form-data-alternate OLD_CONTENT_TYPE= RequestHeader set Content-Type %{NEW_CONTENT_TYPE}e env=NEW_CONTENT_TYPE </Location>
이 지시어는 Content-Type 헤더를 변경합니다. multipart/form-data에서 multipart/form-data-alternate로 /backend/XXX.php에 대한 수신 요청을 처리하여 PHP가 요청 구문 분석을 시도하는 것을 방지합니다.
원시 데이터 검색 및 구문 분석
구성을 수정한 후 원시 데이터를 php://input에서 검색하고 수동으로 구문 분석할 수 있습니다. 그러나 이 방법에는 한 가지 주의 사항이 있습니다. $_FILES 배열은 비어 있습니다.
이 해결 방법은 이상적이지는 않지만 기본 PHP 구문 분석이 실패하는 상황에 대한 솔루션을 제공합니다.
위 내용은 내장 함수를 사용하지 않고 PHP에서 다중 부분/양식 데이터 POST 요청을 어떻게 구문 분석할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!