[PHP 팁] 사용자 입력을 안전하게 처리하는 방법 - filter_input() 활용법 > 웹프로그램

본문 바로가기

웹프로그램

[PHP] [PHP 팁] 사용자 입력을 안전하게 처리하는 방법 - filter_input() 활용법

profile_image
최고관리자
2025-04-18 08:33 7 0

본문

 

[PHP 팁] 사용자 입력을 안전하게 처리하는 방법 - filter_input() 활용법

웹 개발을 하다 보면 사용자 입력을 처리하는 일이 정말 많죠. 특히 PHP에선 전통적으로 $_GET , $_POST 같은 슈퍼글로벌을 그대로 쓰는 경우가 많아 보안에 취약할 수 있습니다.

이번 글에서는 PHP의 내장 함수인 filter_input() 을 이용해서 입력값을 더 안전하고 깔끔하게 처리하는 방법을 소개합니다.


filter_input() 이란?

filter_input() 함수는 외부 입력값을 가져오면서 동시에 **필터링(정제/검증)**까지 해주는 함수입니다.

$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);

이 코드는 $_POST['username'] 값을 가져오되, HTML 태그를 제거한 문자열로 정리해줍니다.


## 자주 사용하는 필터들

필터 설명 예시
FILTER_SANITIZE_STRING 문자열에서 HTML 태그 제거 <b>hi</b>hi
FILTER_VALIDATE_INT 정수 확인 123 → OK / abc → false
FILTER_VALIDATE_EMAIL 이메일 형식 검증 user@example.com → OK
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);if ($email === false) {echo "유효하지 않은 이메일 주소입니다.";}

## 왜 좋은가요?

  • 입력값 검사와 정리를 동시에 처리 가능

  • 코드가 명확하고 보안성 향상

  • XSS, SQL Injection 같은 보안 위협을 줄이는 데 효과적


⚠️ 주의사항

  • filter_input() 은 서버 설정( variables_order )에 따라 INPUT 값이 없을 수도 있어요.

  • PHP 8.1부터는 FILTER_SANITIZE_STRING폐지(deprecated) 되었어요. 대신 strip_tags() 를 사용하세요.

// PHP 8.1 이상에서는 이렇게 처리$username = strip_tags(filter_input(INPUT_POST, 'username'));

요약

  • filter_input() 은 PHP에서 안전하게 사용자 입력을 처리할 수 있는 강력한 도구입니다.

  • 필터링과 검증을 함께 수행할 수 있어 보안 사고 예방에 효과적입니다.

  • 앞으로 입력값을 다룰 때는 꼭 filter_input() 을 고려해보세요!


궁금한 점이나 다른 보안 팁이 있다면 댓글로 같이 나눠봐요! ????


 

 

댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색
상담신청