PHP에서 Register_globals의 비밀을 밝히다
PHP의 핵심 기능인 Register_globals는 보안에 미칠 수 있는 영향으로 주목을 받았습니다. 이 개념을 포괄적으로 이해하기 위해 그 본질을 파헤치고 통찰력 있는 예를 살펴보겠습니다.
register_globals가 무엇인가요?
Register_globals는 PHP가 자동으로 전역 생성을 생성할 수 있도록 하는 구성 설정입니다. $_REQUEST 배열 요소의 변수입니다. 이는 POST 또는 GET 요청을 통해 제출된 값이 해당 입력 필드 이름과 일치하는 이름을 가진 변수로 액세스 가능함을 의미합니다.
전역 $user_id입니다. Register Globals로 간주됩니까?
global 키워드는 Register_globals와 다르게 작동합니다. 함수의 로컬 범위 내에서 특정 전역 변수의 사용을 허용합니다. Register_globals와 달리 모든 $_REQUEST 요소를 자동으로 전역으로 만들지는 않습니다.
예 및 잠재적 보안 위험
register_globals의 보안 영향에 대한 전형적인 예는 입력 검증과 관련됩니다. 다음 코드를 고려하십시오.
if (user_is_admin($user)) { $authorized = true; } if ($authorized) { // Grant extensive privileges }
register_globals가 활성화된 환경에서 공격자는 ?authorized=1을 추가하여 URL을 조작하여 인증 없이 권한 있는 작업을 실행할 수 있습니다.
비교 글로벌 키워드 사용
반면 글로벌 키워드는 다른 용도로 사용됩니다. 이를 통해 함수 범위 내의 특정 전역 변수에 액세스할 수 있습니다. 예를 들면 다음과 같습니다.
$foo = 'bar'; function baz() { global $foo; echo $foo; // Output: bar }
이 예에서는 전역 $foo; baz() 함수 내의 선언은 전역 범위에 정의된 $foo 변수에 대한 액세스 권한을 부여합니다.
위 내용은 Register_globals란 무엇이며 PHP 보안에 어떤 영향을 미치나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!