1. 사용자 입력 검증
사용자 입력을 검증하는 방법은 filter_var()와 htmlspecialchars()를 사용해 입력을 안전하게 처리할 수 있습니다.
- filter_var()
filter_var() 함수는 입력값을 검증하고 필터링하는 데 사용함
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
if(filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo "유효하지 않는 이메일 주소입니다.";
}
- htmlspecialchars()
htmlspecialchars() 함수는 HTML 특수 문자를 변환하여 XSS(교차 사이드 스크립팅) 공격을 방지
$username = htmlspecialchars($_POST['username'], ENT_QUOTES, 'UTF-8')
2. SQL 인젝션 방지
SQL 인젝션을 방지하기 위해서 준비된 문(statement)을 사용하는 것이 가장 효과적입니다. PDO(PHP Data Objects) 또는 MySQLi를 사용해 준비된 문을 생성할 수 있습니다.
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=php', 'pace', '1234');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$stmt->bindParam(':email', $email);
$stmt->execute();
$result = $stmt->fetchAll();
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
?>
요약
- 사용자 입력은 filter_var()와 htmlspecialchars()를 통해 검증하고 필터링
- SQL 인젝션을 방지하기 위해 준비된 문을 사용
GitHub - Koras02/php-tutorial
Contribute to Koras02/php-tutorial development by creating an account on GitHub.
github.com
LIST
'Back-End > PHP' 카테고리의 다른 글
[PHP] 12장(완). PHP 프레임워크 활용하기 (0) | 2025.03.12 |
---|---|
[PHP] 10장. PHP 예외처리, 에러메시지 출력 설정 (0) | 2025.02.28 |
[PHP] 9장. MySQL과 PD0를 사용한 데이터베이스 연결 (0) | 2025.02.27 |
[PHP] 8장 세션과 쿠키 (0) | 2025.02.26 |
[PHP] 7장 파일 입출력 (0) | 2025.02.24 |