프로덕션 서버에서 POST 변수를 이스케이프하는 이유
AJAX POST 요청에서 데이터를 수신할 때 $_POST 변수가 프로덕션에서 이스케이프되는 경우 서버에 있지만 로컬 서버에는 없는 경우 프로덕션 서버에서 마법 따옴표가 활성화되어 있는 것이 가능한 원인입니다.
마법 따옴표가 수신된 데이터의 일부인 경우 작은 따옴표, 큰 따옴표, 백슬래시 및 널 문자를 자동으로 이스케이프합니다. POST 요청과 같은 외부 소스에서. 이 기능은 악성 코드 삽입을 방지하기 위한 보안 조치이지만 원시 데이터를 검색해야 할 때 문제가 발생할 수도 있습니다.
문제를 해결하고 두 서버 모두에서 일관된 동작을 보장하려면 몇 가지 옵션이 있습니다. :
마법 따옴표 비활성화
권장되는 접근 방식은 php.ini에서 마술 따옴표를 비활성화하는 것입니다. 이는 POST 변수의 이스케이프를 전역적으로 비활성화합니다. 그러나 PHP 6에서는 마법 따옴표가 제거되므로 이에 의존하지 않는 것이 좋습니다.
스트립 슬래시
할 수 없는 경우 마법 따옴표를 비활성화하면 Stripslashes() 함수를 사용하여 $_POST 변수에서 슬래시를 수동으로 제거할 수 있습니다.
if (get_magic_quotes_gpc()) { $my_post_var = stripslashes($_POST["my_post_var"]); }
이러한 솔루션 중 하나를 구현하면 $_POST 변수가 이스케이프되지 않도록 할 수 있습니다. 프로덕션 서버에서 로컬 및 프로덕션 서버 모두 일관되게 작동하는지 확인하세요.
위 내용은 내 $_POST 변수가 프로덕션에서는 이스케이프되지만 로컬에서는 이스케이프되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!