티스토리 뷰
PDO SQL 인젝션을 막기위한 처리
PDO가 해주는 중요한 역할 중 하나는 SQL 인젝션 공격을 걱정하지 않고도
외부 입력(사용자ID등) 값을 SQL 쿼리에 넣을 수 있게 해주는 것이다.
이는 PDO statements와 바운드 매개변수를 통해 가능하다.
SQL 인젝션 예)
<?php
$pdo = new PDO('sqlite:/path/db/users.db');
$pdo->query("SELECT name FROM users WHERE id = " . $_GET['id']); // <-- NO!
http://domain.com/?id=1%3BDELETE+FROM+users
$_GET['id']
는 1;DELETE FROM users
바인딩을 사용하여 안전하게 값 전달하기
다음과 같이 PDO의 인자 바인딩을 사용해서 ID 입력값을 안전하게 전달해야 합니다.
출처 : https://modernpug.github.io/php-the-right-way/#mysql_extension
'■ 백엔드 ■ > PHP' 카테고리의 다른 글
기 로그인된 세션 삭제 (0) | 2019.02.19 |
---|---|
ajax 413 Request Entity Too Large error (0) | 2018.12.07 |
PDO Tutorial for MySQL Developers (0) | 2018.11.22 |
PhpSpreadsheet (2) | 2018.07.26 |
PHP5 PASSWORD HASH GENERATOR (0) | 2018.07.26 |
댓글