PHP에서 Register_globals는 $_REQUEST 슈퍼 전역 배열에서 변수를 자동으로 등록하는 내부 설정이었습니다. 그러나 보안 문제로 인해 기본적으로 비활성화되어 있습니다.
register_globals가 활성화되면 POST 또는 GET 요청의 입력 필드 값을 동일한 변수로 직접 액세스할 수 있었습니다. 이름을 입력 필드로 지정합니다. 예:
<form method="post"> <input type="text" name="username"> <input type="submit"> </form>
register_globals가 활성화된 경우 다음 PHP 코드는 스크립트 시작 부분에서 true로 평가됩니다.
$username === $_POST['username'];
Register_globals가 도입되었습니다. 심각한 보안 취약점. 예를 들어 공격자는 인증 확인을 우회하기 위해 "?authorized=1"과 같은 쿼리 문자열 매개 변수를 URL에 추가할 수 있습니다.
register_globals와 달리 글로벌 키워드에는 다른 목적. 함수 내에서 다른 범위의 변수에 액세스하는 데 사용됩니다. 예를 들면 다음과 같습니다.
$foo = 'bar'; function baz() { // Attempting to use $foo here will trigger a warning echo $foo; } function buzz() { global $foo; // Declares that $foo is a global variable echo $foo; // Prints 'bar' }
register_globals는 보안 위험으로 인해 더 이상 사용되지 않지만, global 키워드는 여전히 다양한 범위의 변수에 액세스하는 데 유용한 도구입니다.
위 내용은 PHP에서 Register_globals가 비활성화된 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!