다음 코드에서 보안 처리가 포함된 완전한 POST 데이터 처리 방법은?

과목: PHP

문제 번호: 2895

medium
다음 코드에서 보안 처리가 포함된 완전한 POST 데이터 처리 방법은?
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST['fname'];
    // 여기서 어떤 처리가 필요한가?
}
A. echo $name;
B. $name = htmlspecialchars($_POST['fname']); echo $name;
C. $name = htmlspecialchars($_POST['fname']); if(empty($name)) echo "Name is empty"; else echo $name;
D. $name = strtoupper($_POST['fname']); echo $name;

정답: C



웹 폼 데이터 처리 시에는 보안 처리와 유효성 검증이 모두 필요합니다.

⦁ 필수 보안 처리:
1. htmlspecialchars(): HTML 특수문자를 엔티티로 변환하여 XSS 공격 방지
2. empty(): 빈 값 검증으로 오류 방지

⦁ XSS 공격 예방:
// 위험한 입력: <script>alert('hack')</script>
// 안전한 출력: &lt;script&gt;alert('hack')&lt;/script&gt;

⦁ 완전한 처리 흐름:
⦁ 요청 방식 확인 → 데이터 수신 → 보안 처리 → 유효성 검증 → 결과 출력

⦁ 다른 옵션의 문제점:
⦁ 옵션 1: XSS 공격 취약
⦁ 옵션 2: 빈 값 처리 누락
⦁ 옵션 4: 보안 처리 완전 누락

💡 학습 팁

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