애드센스4



PHP 6 에서의 변화 보안 정보

디토님이 PHP 6에서 일어날 변화를 블로그에 정리해두었는데, 보안 인력으로서 반가운 변화가 한둘이 아닙니다. 놀라지마시라....

드디어... 드디어... 그 빌어먹을 놈의 register_globals, magic_quotes, safe_mode 이 사라진다고 합니다. register_long_arrays 설정과 HTTP_*_VARS 전역 변수도 사라지고... 이제야 PHP 프로젝트가 보안을 강화할 수 있는 기초 토대를 마련해주는 군요.

더욱 놀라운 것은 샌드박스 모드가 생길지도 모른다고 합니다. 그러나 샌드박스는 안전하게 구현하기 매우 힘든 기술입니다. Java 초기에 샌드박스에서 보안 버그가 얼마나 많이 나왔는지를 기억해보세요. 물론 잘만 구현되준다면 분명 보안상 큰 도움이 되겠지만...

아마 안정화될 때까지는 PHP 도 여러 해에 걸쳐 샌드박스 취약점 보안 권고문이 나오는 걸 각오해야겠지요.

그런데, allow_url_fopen으로부터 allow_url_include가 분리된다는 것은 어떤 뜻인지 감이 안오는군요. 일단 보안적인 측면에서는 둘을 분리한다고 달라질 것이 없습니다. 둘다 보안 홀이 되기 딱 좋은 기능이니까. 그렇다면 기능적 차원, 혹은 편리함의 차원에서 분리가 된다는 것일까요?

그 외에도 다른 언어들의 편리한 기능적 요소들을 흡수하고 있어서 보기 좋네요.

저도 당분간 재미삼아 PHP 6 를 설치해서 테스트해볼까 합니다. 좋은 정보를 주신 디토님 고마워요~

참고 자료 : Minutes PHP Developers Meeting

-- 추가 --
원문 사이트를 보니 allow_url_fopen 과 allow_url_include 를 분리하려는 의도는 이해가 가는데, 이 부분은 보안상 우려가 되네요. fopen(http://...) 혹은 fopen(ftp://...) 를 하고 싶은 그 욕구는 이해가 갑니다. PHP 프로젝트 입장에서 장말 자랑스러워할 만한 기능이고, 프로그래밍도 편리하죠. 그러나 allow_url_fopen 을 on 하고 allow_url_include 를 off 할 수 있는 여지를 두면 보안 측면에서는 퇴보라고 할수 있습니다. fopen 함수를 악용하여 다른 서버의 악성 코드를 실행시키는 경우도 많이 있거든요.

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://swbae.egloos.com/tb/1509684 [도움말]

덧글

  • 까나리 2007/02/14 16:11 # 답글

    <morris> 디토군: 유메나 딧호군
  • 좋은진호 2007/02/14 22:56 # 삭제 답글

    allow_url_fopen과 allow_url_include는 이미 php5에서 분리되어 있습니다.
    php4에서 allow_url_fopen = On이 기본이고, include와 require에서 URL을 사용할 수 있지만,
    php5에서는 allow_url_include = Off이 기본입니다.

    - allow_url_fopen와 allow_url_include를 별도 설정할 수 있다는 것과
    - allow_url_include = Off이 기본값이라 보안을 php4보다는 강화했다는 의미인 것 같습니다.
댓글 입력 영역


애드센스7