1.php 필터
PHP 필터는 사용자 입력과 같은 비보안 소스의 데이터를 검증하고 필터링하는 데 사용됩니다.
2. PHP 필터란
PHP 필터는 안전하지 않은 소스의 데이터를 확인하고 필터링하는 데 사용됩니다.
사용자 입력 또는 맞춤 데이터를 테스트하고 검증하고 필터링하는 것은 모든 웹 애플리케이션에서 중요한 부분입니다. PHP의 필터 확장은 데이터 필터링을 더 쉽고 빠르게 만들도록 설계되었습니다
3. 필터를 사용하는 이유
거의 모든 웹 애플리케이션은 외부 입력에 의존합니다. 이 데이터는 일반적으로 사용자 또는 기타 애플리케이션(예: 웹 서비스)에서 제공됩니다. 필터를 사용하면 애플리케이션이 올바른 입력 유형을 얻도록 할 수 있습니다
외부 데이터를 필터링하면 보안이 향상되는데, 어떤 외부 데이터가 있나요?
(1).양식에서 데이터 입력
(2).쿠키
(3).웹 서비스 데이터
(4).서버 변수
(5). 데이터베이스 쿼리 결과
함수 및 필터
변수를 필터링하려면 다음 중 하나를 사용하세요. 필터 함수:
filter_var() - 지정된 필터로 단일 변수 필터링
filter_var_array() - 동일하거나 다른 필터로 여러 변수 필터링 변수
filter_input - 입력 변수를 가져와서 필터링합니다.
filter_input_array - 여러 입력 변수를 가져오고 동일하거나 다른 필터로 필터링합니다.
<?php header("Content-type: text/html; charset=utf-8");//设置编码 $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)){ echo("不是一个合法的整数"); }else{ echo("是个合法的整数"); } ?>
참고: 유효한 정수를 쓰면 출력은 다음과 같습니다. 그렇지 않은 경우 출력은 유효한 정수가 아닙니다.
검증 및 삭제 두 가지 필터링 유형이 있습니다.
필터 검증:
사용자 입력을 확인하는 데 사용됩니다.
엄격한 형식 규칙(예: URL 또는 이메일 확인)
성공한 경우 예상 유형을 반환하거나 실패 시 FALSE를 반환합니다.
필터 삭제 :
문자열에서 지정된 문자를 허용하거나 허용하지 않는 데 사용됩니다.
데이터 형식 규칙 없음
항상 문자열을 반환합니다.
옵션 및 플래그
옵션과 플래그는 지정된 필터에 추가 필터링 옵션을 추가하는 데 사용됩니다.
필터마다 옵션과 플래그가 다릅니다
<?php header("Content-type: text/html; charset=utf-8");//设置编码 $var=300; $int_options = array( "options"=>array( "min_range"=>0, "max_range"=>256 ) ); if(!filter_var($var, FILTER_VALIDATE_INT, $int_options)){ echo("不是一个合法的整数"); }else{ echo("是个合法的整数"); } ?>
참고: 위의 코드와 마찬가지로 옵션은 "options"라는 관련 배열에 넣어야 합니다. 플래그를 사용하는 경우 배열에 있을 필요는 없습니다. 정수가 "300"이므로 지정된 범위에 속하지 않습니다.
입력 유효성 검사
입력 유효성을 검사해 보겠습니다. 양식에서 입력하십시오.
가장 먼저 해야 할 일은 찾고 있는 입력 데이터가 존재하는지 확인하는 것입니다.
그런 다음 filter_input() 함수를 사용하여 입력 데이터를 필터링합니다.
다음 예에서는 입력 변수 "email"이 PHP 페이지로 전달됩니다.
<?php header("Content-type: text/html; charset=utf-8");//设置编码 if(!filter_has_var(INPUT_GET, "email")){ echo("没有 email 参数"); }else{ if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)){ echo "不是一个合法的 E-Mail"; }else{ echo "是一个合法的 E-Mail"; } } ?>
참고: 양식에서 데이터를 전송할 때 먼저 get을 통해 전송된 데이터가 있는지 확인하세요
이후 데이터가 전송되면 합법적인 이메일인지 판단하게 됩니다
입력 삭제
양식에서 전달된 URL을 정리해 보겠습니다.
먼저 우리가 찾고 있는 입력 데이터가 존재하는지 확인하고 싶습니다.
그런 다음 filter_input() 함수를 사용하여 입력 데이터를 정제합니다.
다음 예에서는 입력 변수 "url"이 PHP 페이지에 전달됩니다.
<?php header("Content-type: text/html; charset=utf-8");//设置编码 if(!filter_has_var(INPUT_GET, "url")){ echo("没有 url 参数"); }else{ $url = filter_input(INPUT_GET, "url", FILTER_SANITIZE_URL); echo $url; } ?>
참고: "GET" 유형 "url" 입력 변수가 있는지 확인하세요.
이 입력 변수가 존재하는 경우 이를 삭제하고(불법 문자 제거) $url 변수에 저장합니다.