CodeIgniter User Guide Version 2.1.0


보안Security

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

URI 보안

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

Register_globals

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

오류보고

실제 서비스에서는 PHP의 에러표시기능을 꺼두는것이 좋습니다(internal error_reporting 플레그를 0 으로). 그렇게 하므로써 민감한 정보가 포함될 수있는 PHP 에러가 사용자에게 보이지 않도록 합니다.

index.php에 포함된 CodeIgniter 상수 ENVIRONMENT 값을 ' production '으로 설정하면 오류메세지는 표시되지않습니다.개발 모드에서는 ' development '를 사용하는 것을 추천합니다 .환경별 처리 에서 환경별로 달리 처리할 수 있는 사항들을 확인하세요.

magic_quotes_runtime

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

실용적 기법들 Best Practices

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

 

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

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