0Pricing
PHP Academy · 강의

양식 유효성 검사

보안과 정확성을 위해 사용자 입력을 검증해 보세요

양식 유효성 검사은(는) CoddyKit의 무료 PHP Academy 강의입니다. 이것은 3개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 PHP Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. PHP Academy 강의에는 총 3개의 강의가 포함되어 있습니다.

폼 입력값 검증 및 보안

폼 입력값 검증 및 보안

다음 레슨에 오신 것을 환영합니다! 이 레슨에서는 폼의 정확성을 보장하고 악의적인 공격으로부터 보호하기 위해 사용자 입력값을 검증하고 보호하는 방법을 배웁니다. 시작해 보겠습니다!

양식 유효성 검사 — 일러스트레이션 1

입력값을 검증하고 보호해야 하는 이유

입력값을 검증하고 보호해야 하는 이유

폼 입력값을 검증하고 보호하는 것은 다음과 같은 이유로 매우 중요합니다.

  • 데이터의 정확성과 사용 편의성을 보장할 수 있습니다.
  • SQL 삽입 공격 및 XSS 공격과 같은 보안 위협으로부터 보호할 수 있습니다.

핵심 사항: 사용자 입력값은 처리하거나 저장하기 전에 항상 검증하고 정제해야 합니다.

입력값 검증

입력값 검증

일반적인 입력값을 검증하려면 PHP에 내장된 함수를 사용합니다.

  • filter_var(): 이메일, URL 및 정수를 검증합니다.
  • preg_match(): 정규 표현식과 일치하는지 입력값을 검증합니다.

예시: 이메일 주소 검증하기

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $email = $_POST["email"];
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
      echo "Valid email: $email";
    } else {
      echo "Invalid email address.";
    }
  }
?>

입력값 정제

입력값 정제

원하지 않는 문자나 유해한 코드를 제거하려면 입력값을 정제합니다. 예시는 다음과 같습니다.

팁: 데이터 유형에 따라 적절한 필터와 함께 filter_var()를 사용하세요.

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = filter_var($_POST["name"], FILTER_SANITIZE_STRING);
    echo "Sanitized Name: $name";
  }
?>

사이트 간 스크립팅(XSS) 방지

사이트 간 스크립팅(XSS) 방지

XSS 공격을 방지하려면 특수 문자를 이스케이프합니다. 다음을 사용하세요.

  • htmlspecialchars(): 특수 문자를 HTML 엔터티로 변환합니다.

예시:

팁: 사용자 입력값은 브라우저에 표시하기 전에 항상 이스케이프하세요.

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $comment = htmlspecialchars($_POST["comment"]);
    echo "Comment: $comment";
  }
?>

SQL 삽입 공격 방지

SQL 삽입 공격 방지

SQL 삽입 공격은 악성 코드가 SQL 쿼리에 삽입될 때 발생합니다. 이를 방지하려면 준비된 문을 사용하세요. 예시는 다음과 같습니다.

핵심 사항: 데이터베이스와 상호 작용할 때는 항상 준비된 문을 사용하세요.

<?php
  $pdo = new PDO("mysql:host=localhost;dbname=testdb", "root", "");
  $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
  $stmt->execute(["username" => $_POST["username"]]);
  $user = $stmt->fetch();
?>

일반적인 검증 패턴

일반적인 검증 패턴

다음은 몇 가지 일반적인 패턴입니다.

  • 전화번호 검증: preg_match('/^\d{10}$/', $phone)
  • 비밀번호 검증: 길이와 복잡성을 확인합니다.

예시: 강력한 비밀번호 검증하기

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $password = $_POST["password"];
    if (strlen($password) >= 8 && preg_match('/[A-Z]/', $password)) {
      echo "Strong password!";
    } else {
      echo "Password must be at least 8 characters long and include an uppercase letter.";
    }
  }
?>

파일 업로드 보안

파일 업로드 보안

파일 업로드를 처리하는 폼에서는 다음을 수행합니다.

  • 파일 유형과 크기를 확인합니다.
  • 웹 루트 외부의 안전한 디렉터리에 파일을 저장합니다.

예시:

<?php
  if ($_FILES["file"]["size"] < 500000 && in_array($_FILES["file"]["type"], ["image/jpeg", "image/png"])) {
    move_uploaded_file($_FILES["file"]["tmp_name"], "/secure/location/" . $_FILES["file"]["name"]);
    echo "File uploaded successfully!";
  } else {
    echo "Invalid file.";
  }
?>

잘하셨습니다!

잘하셨습니다!

축하합니다! 웹 애플리케이션의 안전성과 신뢰성을 보장하도록 폼 입력값을 검증하고 보호하는 방법을 배웠습니다. 다음 레슨에서는 PHP에서 파일 업로드를 처리하는 방법을 살펴보겠습니다. 계속 코딩해 보세요!

양식 유효성 검사 — 일러스트레이션 10

자주 묻는 질문

“양식 유효성 검사” 강의는 무료인가요?

네 — “양식 유효성 검사” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 PHP Academy 강의 전체를 잠금 해제할 수 있습니다. PHP Academy 강의에는 총 3개의 강의가 포함되어 있습니다.

“양식 유효성 검사”에서 뭘 배우나요?

보안과 정확성을 위해 사용자 입력을 검증해 보세요 브라우저에서 직접 실행하는 실습 코드로 PHP Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

PHP Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 PHP Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 3번째 강의입니다.

“양식 유효성 검사” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 PHP Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 PHP Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. HTML 양식 만들기
  2. PHP로 양식 데이터 처리하기
  3. 양식 유효성 검사
← PHP Academy(으)로 돌아가기