PHP에서 Register_Globals 및 전역 키워드 이해
웹 애플리케이션으로 작업할 때, PHP에서 Register_Globals 및 전역 키워드의 개념을 이해하는 것이 중요합니다. PHP.
Register_Globals란 무엇입니까?
register_globals 지시문은 $_REQUEST 배열의 요소를 자동으로 변수로 등록합니다. 즉, 양식(POST 또는 GET)을 통해 제출된 모든 데이터는 해당 입력 필드의 이름이 포함된 PHP 변수로 즉시 액세스할 수 있습니다.
이 기능은 처음에는 편리해 보일 수 있지만 애플리케이션을 다음에 노출시킵니다. 보안 취약점. 공격자는 URL 쿼리 문자열이나 제출된 양식 데이터를 조작하여 임의의 변수를 설정하고 잠재적으로 무단 액세스를 얻을 수 있습니다. 따라서 보안상의 이유로 Register_globals를 비활성화하는 것이 좋습니다.
예:
사용자가 로그인 양식을 통해 사용자 이름과 비밀번호를 제출할 수 있는 시나리오를 생각해 보세요. Register_globals를 활성화하면 공격자는 URL에 다음을 추가할 수 있습니다.
?username=admin&password=secret
이렇게 하면 PHP 스크립트에서 $username 및 $password 변수가 자동으로 설정되어 공격자가 인증 프로세스를 우회할 수 있습니다.
글로벌 키워드란 무엇인가요?
글로벌 키워드는 용도가 다르며,register_globals와는 관련이 없습니다. 함수 외부에서 정의된 변수를 해당 함수 내에서 액세스하거나 수정할 수 있습니다.
예:
$foo = 'bar'; function baz() { echo $foo; // PHP generates a warning as $foo is undefined within this scope } function buzz() { global $foo; // Enables access to the global variable $foo echo $foo; // Prints 'bar' to the screen }
위 내용은 PHP에서 Register_Globals가 위험한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!