>  기사  >  백엔드 개발  >  PHP에서 슈퍼전역 변수를 사용하는 방법

PHP에서 슈퍼전역 변수를 사용하는 방법

PHPz
PHPz원래의
2023-05-20 19:01:341214검색

PHP의 슈퍼 전역 변수는 전역 범위에서 액세스할 수 있는 변수를 의미합니다. 각 슈퍼 전역 변수는 $_GET, $_POST, $_COOKIE 등과 같이 PHP에서 미리 정의된 많은 변수를 포함하는 연관 배열입니다. 이러한 초전역 변수는 양식 데이터 가져오기, URL 매개변수 가져오기 등과 같은 사용자 요청에서 정보를 얻는 중요한 방법을 제공하기 때문에 웹 개발에서 매우 중요합니다.

이 글에서는 PHP에서 일반적으로 사용되는 슈퍼전역 변수의 역할, 사용 방법, 보안 문제 방지 방법을 자세히 소개합니다.

1. $_GET

$_GET은 URL을 통해 전달된 모든 매개변수를 포함하는 연관 배열입니다. 예를 들어 요청된 URL이 http://example.com/index.php?name=John&age=25인 경우 $_GET 배열에는 다음 요소가 포함됩니다.

array(
    'name' => 'John',
    'age' => '25'
);

다음에서 이러한 값에 액세스할 수 있습니다. 방법:

echo $_GET['name']; // 输出 'John'
echo $_GET['age']; // 输出 '25'

2. $_POST

$_POST는 POST 메서드를 통해 제출된 모든 양식 데이터를 포함하는 연관 배열이기도 합니다. 아래와 같이 이를 사용하여 양식에서 데이터를 가져올 수 있습니다.

<form action="process.php" method="post">
    <input type="text" name="name" />
    <input type="submit" value="Submit">
</form>

양식을 제출할 때 $_POST 슈퍼 전역 변수를 사용하여 제출된 데이터를 가져올 수 있습니다.

echo $_POST['name'];

3. $_COOKIE

$_COOKIE 현재 요청에서 전송된 모든 쿠키를 포함하는 연관 배열입니다. 대부분의 경우 $_COOKIE 변수를 사용하여 이전에 설정된 쿠키를 읽을 수 있습니다.

setcookie('name', 'John', time() + (86400 * 30), '/');

이렇게 하면 사용자 브라우저에 "John"이라는 값을 가진 "name"이라는 쿠키가 설정되며 30일 후에 만료됩니다. 다음 코드를 사용하여 Cookie 값을 읽을 수 있습니다.

echo $_COOKIE['name'];

4. $_SESSION

$_SESSION은 사용자 세션 중에 저장된 모든 변수를 포함하는 연관 배열입니다. 사용자가 귀하의 웹사이트를 방문할 때 $_SESSION이 한 사용자를 다른 사용자와 구별하는 유일한 요소입니다.

세션에 데이터를 저장하려면 다음 코드를 사용할 수 있습니다.

session_start();
$_SESSION['name'] = 'John';

이 방법으로 세션 전체에서 특정 값의 상태를 유지할 수 있습니다.

session_start();
echo $_SESSION['name']; // 输出 'John'

5. $_SERVER

$_SERVER는 An을 포함하는 현재 스크립트 실행에 대한 서버 및 클라이언트 관련 정보의 배열입니다. $_SERVER를 사용하면 다음과 같이 클라이언트가 요청한 일부 정보를 알 수 있습니다.

  • 원격 액세스 사용자의 IP 주소: $_SERVER['REMOTE_ADDR']
  • 사용자 에이전트: $_SERVER['HTTP_USER_AGENT']
  • 현재 스크립트 파일 경로: $_SERVER['SCRIPT_FILENAME']
  • 현재 요청 방법(GET/POST): $_SERVER['REQUEST_METHOD']
  • 현재 스크립트가 위치한 루트 디렉터리: $_SERVER['DOCUMENT_ROOT']

이것들은 이 정보는 개발자에게 매우 유용합니다.

6. $_FILES

$_FILES는 파일 업로드 시 파일 정보를 담고 있는 배열입니다. 파일을 업로드할 때 $_FILES를 사용하여 업로드된 파일을 조작할 수 있습니다.

다음 코드를 사용하여 $_FILES 값을 인쇄할 수 있습니다.

print_r($_FILES);

이렇게 하면 파일 정보가 포함된 배열이 출력됩니다. 예:

Array
(
    [file] => Array
        (
            [name] => file.txt
            [type] => text/plain
            [tmp_name] => /tmp/phpzAduR5
            [error] => 0
            [size] => 123
        )

)

7 보안 문제 방지

슈퍼글로벌 변수는 PHP에서 기본적으로 활성화됩니다. , 개발자는 이를 사용하여 웹 요청에서 데이터를 쉽게 얻을 수 있습니다. 그러나 보안 취약점의 원인이기도 합니다.

공격자는 웹 요청에 슈퍼전역 변수를 사용하여 악성 코드를 삽입하거나 웹 애플리케이션에 취약점을 생성할 수 있습니다. 따라서 개발자는 웹사이트를 보호하기 위해 다음 조치를 취해야 합니다.

  1. 입력 데이터를 필터링합니다. PHP 또는 정규식에서 filter_var() 함수를 사용하여 입력 데이터를 필터링하고 사용자가 악성 코드를 삽입하지 않도록 할 수 있습니다.
  2. 입력 데이터의 유효성을 검사합니다. 개발자는 모든 입력 데이터의 유효성을 검사하여 예상 형식과 길이를 준수하는지 확인해야 합니다. 예를 들어, 이메일 주소로 작업할 때 filter_var() 함수를 사용하여 이메일 주소가 올바른 형식인지 확인할 수 있습니다.
  3. 초전역 변수를 SQL 쿼리나 명령에 직접 전달하지 마세요. 이는 SQL 주입 및 기타 보안 문제를 방지하는 좋은 프로그래밍 방법입니다.
  4. 오류 보고 기능을 끄세요. 프로덕션 서버에서는 공격자가 애플리케이션 아키텍처 및 기타 민감한 정보에 대한 정보를 얻는 것을 방지하기 위해 PHP의 오류 보고 기능을 꺼야 합니다.

요약

PHP에서 슈퍼전역 변수를 사용하면 웹 요청에서 데이터를 쉽게 얻을 수 있습니다. 개발자는 이러한 변수를 주의 깊게 이해하고 웹 응용 프로그램을 만들 때 이를 사용해야 합니다. 그러나 개발자는 또한 슈퍼전역 변수의 보안 위험을 이해하고 애플리케이션 보안을 보장하기 위해 필요한 조치를 취해야 합니다.

위 내용은 PHP에서 슈퍼전역 변수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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