복붙노트

PHP에서 SQL injection 방지하기

PHP

PHP에서 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