> 백엔드 개발 > PHP 튜토리얼 > PHP 안전 코딩 원칙: filter_var 함수를 사용하여 사용자 입력을 필터링하고 검증하는 방법

PHP 안전 코딩 원칙: filter_var 함수를 사용하여 사용자 입력을 필터링하고 검증하는 방법

WBOY
풀어 주다: 2023-07-30 19:36:02
원래의
769명이 탐색했습니다.

PHP 보안 코딩 원칙: filter_var 함수를 사용하여 사용자 입력을 필터링하고 검증하는 방법

웹 애플리케이션의 급속한 발전으로 인해 사용자 입력의 보안이 점점 더 중요해지고 있습니다. 악의적인 사용자는 다양한 취약점과 공격 방법을 악용하여 애플리케이션에 심각한 손실을 입힐 수 있습니다. 따라서 PHP 개발자는 항상 사용자 입력 필터링 및 유효성 검사에 주의를 기울여야 합니다.

PHP는 사용자 입력을 필터링하고 검증하는 매우 편리하고 강력한 기능인 filter_var를 제공합니다. 이 문서에서는 몇 가지 일반적인 필터링 및 유효성 검사 시나리오를 소개하고 해당 코드 예제를 제공합니다.

  1. 이메일 주소 필터링 및 확인
    이메일 주소는 웹 애플리케이션에서 일반적으로 사용되는 입력 필드 중 하나입니다. 사용자가 유효한 이메일 주소를 입력했는지 확인하려면 filter_var 함수와 FILTER_VALIDATE_EMAIL 필터를 사용할 수 있습니다.
$email = 'example@example.com';
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo '邮箱地址有效';
} else {
    echo '邮箱地址无效';
}
로그인 후 복사
  1. URL 필터링 및 유효성 검사
    URL은 사용자가 웹 사이트에 액세스하거나 리소스를 다운로드하기 위해 URL을 입력해야 하는 또 다른 일반적인 입력 필드입니다. filter_var 함수와 FILTER_VALIDATE_URL 필터를 사용하여 사용자가 유효한 URL을 입력했는지 확인하세요.
$url = 'http://www.example.com';
if (filter_var($url, FILTER_VALIDATE_URL)) {
    echo 'URL有效';
} else {
    echo 'URL无效';
}
로그인 후 복사
  1. 정수 필터링 및 유효성 검사
    사용자가 숫자를 입력할 때 일반적으로 다른 유형의 데이터가 아닌 정수를 입력하는지 확인해야 합니다. 정수 유효성 검사는 filter_var 함수와 FILTER_VALIDATE_INT 필터를 사용하여 쉽게 수행할 수 있습니다.
$number = 123;
if (filter_var($number, FILTER_VALIDATE_INT)) {
    echo '输入是一个整数';
} else {
    echo '输入不是一个整数';
}
로그인 후 복사
  1. IP 주소 필터링 및 확인
    IP 주소 확인은 사용자의 로그인 IP가 합법적인지 확인하는 등 다양한 시나리오에서 사용됩니다. IP 주소의 유효성은 filter_var 함수와 FILTER_VALIDATE_IP 필터를 사용하여 확인할 수 있습니다.
$ip = '127.0.0.1';
if (filter_var($ip, FILTER_VALIDATE_IP)) {
    echo 'IP地址有效';
} else {
    echo 'IP地址无效';
}
로그인 후 복사
  1. 사용자 정의 필터링 및 유효성 검사 규칙
    기본 제공 필터 외에도 사용자 정의 필터를 사용하여 특정 요구 사항을 충족할 수도 있습니다. filter_var 함수의 두 번째 매개변수는 배열일 수 있으며 필요에 따라 여러 필터링 및 유효성 검사 규칙을 정의할 수 있습니다.
$input = '<script>alert("XSS")</script>';
$filters = array(
    'input' => array(
        'filter' => FILTER_SANITIZE_STRING,
        'flags' => FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_BACKTICK,
    ),
);

$result = filter_var_array(array('input' => $input), $filters);
echo $result['input'];
로그인 후 복사

위 예에서는 FILTER_SANITIZE_STRING 필터를 사용하여 입력에서 HTML 태그를 제거했고 FILTER_FLAG_STRIP_LOW 및 FILTER_FLAG_STRIP_BACKTICK 플래그를 사용하여 제어 문자와 백틱을 제거했습니다.

요약하자면, filter_var 함수를 사용하면 사용자 입력을 쉽게 필터링하고 검증할 수 있으며 웹 애플리케이션의 보안을 강화할 수 있습니다. 이메일 주소, URL, 정수 또는 IP 주소를 필터링하든 모두 간단한 코드로 수행할 수 있습니다. 또한 특정 요구 사항을 충족하기 위해 필요에 따라 고유한 필터와 규칙을 정의할 수 있습니다.

웹 애플리케이션을 개발할 때 항상 사용자 입력의 보안을 염두에 두세요. 사용자 입력을 신중하게 처리하고 검증하는 것은 애플리케이션을 공격으로부터 보호하는 중요한 조치 중 하나입니다.

위 내용은 PHP 안전 코딩 원칙: filter_var 함수를 사용하여 사용자 입력을 필터링하고 검증하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿