CodeIgniter User Guide Version 1.7.2


보안Security

본 페이지에서는 웹 보안에 대한 실용적기법들(best practices) 과 CodeIgniter 의 보안 항목에 관한 상세 설명을 제공합니다.

URI 보안

CodeIgniter 는 악의있는 데이터가 프로그램으로 전달되는것을 방지하기 위하여 URI 에 쓰는 문자를 상당히 제한하기 있습니다.URL 은 아래 사항들만 포함해야 합니다:

GET, POST, 및 COOKIE 데이터

CodeIgniter 는 기본적으로 세그먼트 기반의 URI 를 사용하므로 GET data 는 허용되지않습니다.(만약 여러분이 config 파일에서 쿼리스트링(query string) 옵션을 활성화 해 놓았다면 허용됩니다 ).글로벌 GET 배열은 시스템 초기화 과정에서 해제( unset )됩니다.

Register_globals

시스템 초기화과정에서 모든 글로벌 변수(global variables)들은 해제( unset ) 됩니다 .단 , $_POST 및 $_COOKIE 배열은 예외입니다.해제 루틴은 register_globals = off 와 동일한 동작을 합니다.

magic_quotes_runtime

magic_quotes_runtime지시자는 시스템 초기화과정에서 off 되므로 데이터베이스에서 데이터를 조회할때 슬래쉬를 제거할 필요가 없습니다..

실용적 기법들 Best Practices

서버로 부터 전달된데이터(사용자가 입력한 POST 데이터, COOKIE 데이터, URI 데이터, XML-RPC 데이터, SERVER 배열에 있는데이터 등)들을 처리하기전에 아래의 3단계를 거치는것이 좋습니다.

 

  1. 오염된 데이터를 필터합니다
  2. 올바른 타입,크기,길이 등의 사항들을 검증합니다. (이 단계가 1번단계를 대신할때도 있습니다.)
  3. 데이터베이스에 입력하기 전에 이스케이프(Escape) 합니다.

CodeIgniter 는 이러한 단계를 지원하기 위하여 다음 함수들을 지원합니다: