다음 코드에서 보안상 문제가 없는 완전한 처리 흐름은?
다음 코드에서 보안상 문제가 없는 완전한 처리 흐름은?
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
이름: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_REQUEST['fname'];
// 여기서 어떤 검증이 필요한가?
}
?>
정답: C
웹 애플리케이션에서 사용자 입력을 처리할 때는 항상 보안과 유효성 검증을 함께 고려해야 합니다.
⦁ 필수 보안 처리:
1.
htmlspecialchars()
: XSS 공격 방지2.
empty()
: 빈값 검증으로 오류 방지⦁ 완전한 처리 흐름:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = htmlspecialchars($_REQUEST['fname']);
if (empty($name)) {
echo "이름을 입력해주세요";
} else {
echo "안녕하세요, " . $name . "님!";
}
}
⦁ 각 옵션의 문제점:
⦁ 옵션 1: XSS 공격 위험
⦁ 옵션 2: 보안 처리 누락
⦁ 옵션 4: 보안 처리와 검증 모두 누락
💡 학습 팁
이 문제를 포함한 PHP 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.