>백엔드 개발 >PHP 튜토리얼 >REGISTER_GLOBALS가 PHP에서 보안 악몽으로 간주되는 이유는 무엇입니까?

REGISTER_GLOBALS가 PHP에서 보안 악몽으로 간주되는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-26 05:36:02286검색

Why is REGISTER_GLOBALS Considered a Security Nightmare in PHP?

REGISTER_GLOBALS: 왜 멸시받는가?

PHP 개발자라면 REGISTER_GLOBALS를 언급하는 것만으로도 전염병에 걸린 것과 같은 본능적인 반응을 불러일으킵니다. 그런데 왜 이 특정 설정에 대해 그토록 강한 혐오감을 느끼는 걸까요?

REGISTER_GLOBALS의 위험

REGISTER_GLOBALS를 사용하면 GET 또는 POST를 통해 전달된 모든 변수가 스크립트 내에서 전역 변수로 액세스할 수 있습니다. . 겉으로는 무해해 보이는 이 기능에는 숨겨진 위협이 숨어 있습니다.

PHP에서 선언되지 않은 변수에 액세스하면 오류가 아닌 경고만 발생합니다. 결과적으로 이는 교활한 취약점의 온상이 될 수 있습니다.

예시

다음 코드 조각을 고려하세요.

<code class="php"><?php
// $debug = true;
if ($debug) {
    echo "query: $query\n";
}
?></code>

$ query가 명시적으로 선언되지 않은 경우 위의 코드는 "query"라는 GET 또는 POST 변수의 값을 오류 없이 출력합니다. 즉각적인 위협은 아닐 수 있지만 안타깝게도 잘못 제작된 PHP 코드는 흔히 발생합니다.

이러한 시나리오에서 REGISTER_GLOBALS는 오류로 쉽게 드러날 수 있는 의도하지 않은 부작용과 보안 허점을 초래할 수 있습니다.

결론

REGISTER_GLOBALS는 본질적으로 악의적이지는 않지만 PHP 코드베이스 내에서 보안 및 안정성 문제의 중요한 원인임이 입증되었습니다. 그 결과 악명 높은 평판을 얻었고 개발자들은 만장일치로 이를 버림받은 설정으로 취급하는 데 동의했습니다.

위 내용은 REGISTER_GLOBALS가 PHP에서 보안 악몽으로 간주되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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