"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > REGISTER_GLOBALS가 PHP의 보안 위험인 이유는 무엇입니까?

REGISTER_GLOBALS가 PHP의 보안 위험인 이유는 무엇입니까?

2024-11-08에 게시됨
검색:553

Why is REGISTER_GLOBALS a security hazard in PHP?

REGISTER_GLOBALS: PHP 보안 위험

REGISTER_GLOBALS는 한때 PHP에서 논란의 여지가 있는 기능이었으며 광범위한 비난을 불러일으켰습니다. 악명 높은 평판은 고유한 보안 위험으로 인해 발생합니다.

REGISTER_GLOBALS의 문제점은 무엇입니까?

REGISTER_GLOBALS는 모든 GET 및 POST 요청 매개변수에 대한 전역 변수를 자동으로 생성합니다. , 스크립트의 어느 곳에서나 액세스할 수 있도록 합니다. 선언되지 않은 변수에 액세스하는 것은 오류가 아닌 PHP의 경고일 뿐이므로 이는 심각한 위협이 됩니다.

다음 가상 코드를 고려하세요.

// $debug = true;
if ($debug) {
    echo "query: $query\n";
}

REGISTER_GLOBALS가 활성화되지 않은 상태에서 선언되지 않은 $query 변수에 액세스하면 경고 또는 오류가 발생하고 개발자에게 변수를 명시적으로 정의하라는 메시지가 표시됩니다. 그러나 REGISTER_GLOBALS를 켜면 선언되지 않은 $query를 전역 변수로 계속 사용할 수 있으므로 공격자가 이 선언되지 않은 매개 변수를 악용할 수 있는 잠재적인 경로가 생성됩니다.

본질적으로 나쁘지는 않지만 REGISTER_GLOBALS는 널리 퍼져 있는 보안 결함을 악화시킬 수 있습니다. 종종 품질이 좋지 않기 때문에 많은 PHP 스크립트가 사용됩니다. 따라서 일반적으로 보안 강화를 위해 REGISTER_GLOBALS를 비활성화하는 것이 좋습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3