하오해피
http://blog.csdn.net/Haohappy2004
SQL 주입 공격은 해커가 웹사이트를 공격하기 위해 사용하는 가장 일반적인 방법입니다. 귀하의 사이트가 엄격한 사용자 입력 유효성 검사를 사용하지 않으면 SQL 주입 공격에 매우 취약합니다. SQL 주입 공격은 일반적으로 잘못된 데이터나 쿼리 문을 사이트 데이터베이스에 제출하여 구현되며, 이로 인해 데이터베이스의 기록이 노출, 변경 또는 삭제될 수 있습니다. SQL 주입 공격이 어떻게 구현되고, 이를 방지하는 방법에 대해 이야기해 보겠습니다.
이 예를 보세요:
// 가정된 입력
$name = "ilia'; 사용자에서 삭제;";
mysql_query("SELECT * FROM 사용자 WHERE 이름='{$name}'");
데이터베이스에 의해 실행된 마지막 명령은 다음과 같습니다.
SELECT * FROM users WHERE name=ilia DELETE FROM users;
이는 데이터베이스에 재앙적인 결과를 가져왔습니다. 모든 기록이 삭제되었습니다.
하지만 사용하고 있는 데이터베이스가 MySQL이라면 다행스럽게도 mysql_query() 함수를 사용하면 이러한 작업을 직접 수행할 수 없으므로(한 줄에 여러 개의 문 작업을 수행할 수 없음) 안심하셔도 됩니다. 사용 중인 데이터베이스가 SQLite 또는 PostgreSQL이고 이러한 명령문을 지원하는 경우 재난에 직면하게 됩니다.