보안 방법


악의적인 값의 입력으로 인하여 인젝션 공격을 방지하는 방법은 매개변수를 필터링하는 것입니다. 또는 검증 함수들을 이용하여 처리하는 것 또한 좋은 방법이 될 것입니다.

27.5.1 숫자 확인

숫자의 값으로 입력되는 매개변수들은 값을 사전에 체크하는 것이 좋습니다. 또는 직접적 인 SQL 문장을 만들어 쓰는 것보다,

$query = sprintf(select * from members where Id=%d’”,$ID); 

형태로 쿼리의 매개변수의 인자값이 정수로만 들어갈 수 있는 함수 형태의 문장으로 바꾸 어 사용하는 방법도 있습니다.

27.5.2 문자열

사용자가 문자열 입력할 때 매개변수 ( $_POST, $_GET)의 모든 값을 addslashes() 함 수를 이용하여 먼저 처리합니다.

addslashes() 함수는 DB 쿼리와 같이 인용 부분 앞에 백슬래시를 추가함으로써 SQL 인 젝션 공격을 방지하는 용도로 자주 사용합니다. addslashes()는 PHP 버전 3 이상부터 사용 가능합니다.