이메일 주소의 2단계 처리 과정에서 빈칸에 들어갈 올바른 필터는?

과목: PHP

문제 번호: 2963

hard
이메일 주소의 2단계 처리 과정에서 빈칸에 들어갈 올바른 필터는?
$email = "user@domain.com<script>";

// 1단계: 불법 문자 제거
$email = filter_var($email, ___);

// 2단계: 이메일 형식 검증
if (!filter_var($email, ___) === false) {
    echo "유효한 이메일";
} else {
    echo "무효한 이메일";
}
A. FILTER_SANITIZE_STRING, FILTER_VALIDATE_STRING
B. FILTER_SANITIZE_EMAIL, FILTER_VALIDATE_EMAIL
C. FILTER_VALIDATE_EMAIL, FILTER_SANITIZE_EMAIL
D. FILTER_CLEAN_EMAIL, FILTER_CHECK_EMAIL

정답: B



이메일 처리는 정제 후 검증 순서로 진행하여 안전하고 유효한 이메일을 확보해야 합니다.

⦁ 2단계 처리 과정:

1단계: FILTER_SANITIZE_EMAIL
⦁ 이메일에 허용되지 않는 문자 제거
<script> 같은 위험한 태그 제거
⦁ 결과: user@domain.com

2단계: FILTER_VALIDATE_EMAIL
⦁ RFC 표준에 따른 이메일 형식 검증
⦁ @ 기호, 도메인 형식 등 확인
⦁ 유효하면 원본 반환, 무효하면 false 반환

⦁ 처리 결과:
⦁ 입력: user@domain.com<script>
⦁ 정제 후: user@domain.com
⦁ 검증 결과: 유효한 이메일 (true)

⦁ 순서의 중요성:
⦁ 정제 먼저: 위험 요소 제거
⦁ 검증 나중에: 안전해진 데이터의 유효성 확인

💡 학습 팁

이 문제를 포함한 PHP 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.