2010년 6월 17일 목요일

php.ini 에서 magic_quotes_gpc..

PHP 6.0이 나오면서 없어지는것들이 꽤나 많죠.

magic_quotes_gpc, register_globals 등등..


원래는 신경도 안쓰고 있다가, 워게임 서버 돌린다고 서버 셋팅하고

아파치 로그셋팅이랑 이것저것 하다보니 자꾸 에러로그에 이게 싸이더군요.

 Warning: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0

구글링 살짝 해주고, 하다보니 php 6.0부터 완전히 제거된다는 소리가..

그덕에 잠깐 코딩질..

========================================================================================
if(!get_magic_quotes_gpc()){
 foreach($_GET as $num => $val){$_GET[$num]=addslashes($val);}
 foreach($_POST as $num => $val){$_POST[$num]=addslashes($val);}
 foreach($_COOKIE as $num => $val){$_COOKIE[$num]=addslashes($val);}
}
========================================================================================

별다른거 없고, magic_quotes_gpc랑 똑같은 역할을 하는데,
Get, Post, Cookie 세가지의 모든값을 addslashes 함수에 한번 거쳐주는것 뿐입니다.

저 부분을 모든 PHP 페이지의 상단에 넣어주시면 (이라고 할것도 없이, 보통 DB 커넥션 할때

dbinc.php 라던가 db.php 등으로 파일을 하나 별도로 만들어서 include 하셔서 쓰실텐데

해당 db연결파일에만 넣어주시면)

magic_quotes_gpc = off 해 두셔도 SQL injection 공격에는 안전해집니다. :)


혹시 제가 간과한점이 있거나, 버그 등이 있으면 피드백 부탁드려요~ (겨우 3줄짜리 코드에.. orz)

3 개의 댓글:

  1. Good fill someone in on and this fill someone in on helped me alot in my college assignement. Gratefulness you as your information.

    답글삭제
  2. Good page you've got listed here

    답글삭제