(PHP) 사용자 입력을 안전하게 처리하는 방법 - filter_input() 활용법
페이지 정보
작성자 최고관리자 댓글 0건 조회 24회 작성일 25-09-26 16:24본문
[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()을 고려해보세요!
댓글목록
등록된 댓글이 없습니다.