PHP에서 SQL injection 방지하기
PHPPHP에서 SQL injection 방지하기
PDO 사용
$stmt = $pdo->prepare('SELECT * FROM users WHERE name = :name');
$stmt->execute(array('name' => $name)); // :name 이라고 쓴 부분에 $name 변수의 값을 바인딩합니다.
foreach ($stmt as $row) {
// $row에 개별 행이 들어옵니다.
}
MySQLi 사용
$stmt = $dbConnection->prepare('SELECT * FROM users WHERE name = ?');
$stmt->bind_param('s', $name); // s는 string 이라는 뜻입니다. 첫번째 ? 에 $name 변수의 값을 바인딩합니다.
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
// $row에 개별 행이 들어옵니다.
}
MySQLi 는 PHP5.5부터는 deperated 되어서 기본적으로 사용이 불가능합니다.
가능하면 PDO를 사용하세요.
MySQLi 의 bind_param 타입은 다음과 같습니다.
s : string : 문자열
i : integer : 정수
d : double : 실수형
b : blob : 패킷의 BLOB 타입
'PHP' 카테고리의 다른 글
PHP 에서 오류 메세지 보기 (0) | 2017.11.13 |
---|---|
PHP 타임존 설정 (0) | 2017.11.13 |
PHP에서 날짜 및 시간 다루기 (0) | 2017.11.12 |
PHP Headers already sent 오류 (0) | 2017.11.12 |
PHP mysql_query 에서 false 를 반환할 경우 (0) | 2017.11.11 |