JavaScript - 문제 미리보기
문제 752
hard
데이터베이스 연동 및 SQL 인젝션 방지에 대한 문제입니다.
다음 PHP 코드에서 SQL 인젝션 공격을 방지하기 위해 사용된 기법은 무엇인가요?
```php
$sql = "SELECT customerid, companyname FROM customers WHERE customerid = ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("s", $_GET['q']);
$stmt->execute();
```
다음 PHP 코드에서 SQL 인젝션 공격을 방지하기 위해 사용된 기법은 무엇인가요?
```php
$sql = "SELECT customerid, companyname FROM customers WHERE customerid = ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("s", $_GET['q']);
$stmt->execute();
```
정답: B
이 코드는 Prepared Statement(준비된 문장) 기법을 사용하여 SQL 인젝션을 방지합니다. `prepare()`로 SQL 문을 미리 준비하고, `?` 플레이스홀더를 사용한 후, `bind_param()`으로 실제 값을 안전하게 바인딩합니다. 이 방식은 사용자 입력을 SQL 쿼리와 분리하여 처리하므로, 악의적인 SQL 코드가 삽입되어도 실행되지 않습니다. "s"는 문자열 타입을 의미하며, `$_GET['q']` 값이 안전하게 바인딩됩니다.
💡 학습 팁
이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.