>백엔드 개발 >PHP 튜토리얼 >Magic Quotes를 비활성화한 후에도 WordPress POST 데이터가 유출되는 이유는 무엇입니까?

Magic Quotes를 비활성화한 후에도 WordPress POST 데이터가 유출되는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-03 05:43:30322검색

Why Is My WordPress POST Data Escaping Even After Disabling Magic Quotes?

WordPress의 마법 인용문 수수께끼

PHP의 마법 인용문을 비활성화했음에도 불구하고(get_magic_quotes_gpc()에서 0을 반환하여 확인) POST 데이터가 여전히 이스케이프되고 있습니다. . 이 문제는 WordPress가 다중 사이트 설치에 통합될 때 발생합니다.

자동 이스케이프에서 WordPress의 역할

자동 이스케이프의 원인은 WordPress의 코드베이스에 있습니다. WordPress의 버그(티켓 #18322)는 매직 따옴표가 비활성화된 경우에도 입력을 삭제하려고 시도합니다. 해결책은 코덱에서 제안한 대로 수동으로 입력 데이터에서 슬래시를 명시적으로 제거하는 것입니다.

슬래시를 깊게 제거

문제를 해결하려면 슈퍼글로벌에서 슬래시를 깊게 제거하세요. Stripslashes_deep() 함수를 사용하여 배열($_GET, $_POST, $_COOKIE, $_SERVER 및 $_REQUEST):

<code class="php">$_GET       = array_map('stripslashes_deep', $_GET);
$_POST      = array_map('stripslashes_deep', $_POST);
$_COOKIE    = array_map('stripslashes_deep', $_COOKIE);
$_SERVER    = array_map('stripslashes_deep', $_SERVER);
$_REQUEST   = array_map('stripslashes_deep', $_REQUEST);</code>

대체 접근 방식

또는, 슈퍼 전역을 재정의하는 대신 특정 배열에서 로컬로 array_map()을 사용하는 것이 좋습니다.

<code class="php">$post = array_map('stripslashes_deep', $_POST);</code>

고려 사항

위에 표시된 것처럼 슈퍼 전역을 수정하면 애플리케이션에 영향을 미칠 수 있습니다. 특정 컨텍스트가 허용하는 경우 데이터 무결성을 유지하기 위해 선택적 제거를 고려하십시오. 추가적인 통찰력을 얻으려면 제공된 참고 자료를 참조하세요.

위 내용은 Magic Quotes를 비활성화한 후에도 WordPress POST 데이터가 유출되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.