PHP에서 안전하게 사용자 입력 처리하기 > 웹프로그램

본문 바로가기

웹프로그램

[PHP] PHP에서 안전하게 사용자 입력 처리하기

profile_image
최고관리자
5시간 33분전 3 0

본문

 

웹에서 사용자 입력을 받을 때, 보안을 고려하지 않으면 XSS나 SQL Injection 같은 심각한 문제로 이어질 수 있습니다. PHP에서 기본적으로 할 수 있는 보안 처리 방법을 소개합니다.

 

1. HTML 출력 시에는 htmlspecialchars()

사용자 입력을 그대로 HTML에 출력하면 XSS 공격에 노출될 수 있습니다. 꼭 이스케이핑 처리하세요.

 

$user_input = $_POST['comment'];

echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');

 

  • ENT_QUOTES: 작은따옴표, 큰따옴표 모두 변환

  • 'UTF-8': 문자 인코딩 명시 (꼭 써주세요)

 

2. SQL 쿼리에는 Prepared Statement 사용하기

SQL 쿼리에 변수를 직접 넣지 말고, PDO의 prepare()를 사용하면 SQL Injection을 방지할 수 있습니다.

 

stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$stmt->execute(['email' => $_POST['email']]);

 

3. 입력값 검증도 기본입니다

예를 들어 이메일 입력이라면, 형식을 검사해서 잘못된 값은 걸러야 합니다.

if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
echo "올바르지 않은 이메일 형식입니다.";
}

 

✅ 요약

  • 입력은 항상 검증!

  • 출력은 항상 이스케이프!

  • DB는 Prepared Statement로 처리!

기본적인 부분이지만 이거 하나만 지켜도 보안 수준이 훨씬 높아집니다.


 

 

댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색
상담신청