Linux WEB

register_globals 옵션에 따른 변수 전달

2009.02.19 00:18

jook 조회 수:34709

보안상의 이유로 php.ini 파일의 register_globals 옵션을 off로 설정해 놓은 웹서버들이 많이 있으며,  이런 경우는 form 을 통해서 변수를 전달 할 때 아래와 같이 제약을 받게 된다.

ex>

입력 폼
=============================================
<form method="post" action="result.php">
<input type="text" name="subject" size="20" maxlength="10">
<input type="submit" value="확인">
</form>
=============================================


register_globals = on 일때

form으로부터 전달 받은 변수를 $_POST[subject], $subject 등과 같이 사용 할 수 있다.

result.php
===================================
<?
echo("$subject");        <--- 사용가능
echo("$_POST[subject]");  <--- 사용가능
?>
===================================



register_globals = off 일때

form으로부터 전달 받은 변수를 $subject 와 같은 형식으로는 사용할 수 없으며, $_POST[subject]의 형식으로 사용이 가능하다.

result.php
===================================
<?
echo("$subject");        <--- 사용 불가능
echo("$_POST[subject]");  <--- 사용 가능
?>
===================================

단, 아래와 같이 result.php상단에 아래와 같은 형식으로 extract 선언을 하거나, header 파일에 선언하여 include 한 후에는 $subject 와 같은 형식으로 변수 사용이 가능하다.

result.php
===================================
<?
@extract($_GET);
@extract($_POST);
@extract($_SERVER);

echo("$subject");        <--- 사용가능
echo("$_POST[subject]");  <--- 사용가능
?>
===================================


-tip
서버의 정책이 register_globals=off 일때, 특정 가상호스트나, 특정 디렉토리 하위에서 register_globals=on 으로 사용 가능하다.
가상호스트 설정 부분에 아래와 같이 php_flag 옵션으로 추가를 하거나, 특정 디렉토리 내에 .htaccess 파일을 생성해서 php_flag register_globals on 을 추가하고 사용하면 된다.

<VirtualHost xxx.xxx.xxx.xxx>
   ...
php_flag register_globals on
   ...
</VirtualHost>

번호 제목 글쓴이 날짜 조회 수
63 Debian 에서 mod_rewrite 활성화 하기 jook 2008.12.12 19805
62 Debian에서 apm 설치할때의 패키지 목록 jook 2008.12.27 20175
61 php.ini 옵션 중 short_open_tag jook 2009.02.12 27349
» register_globals 옵션에 따른 변수 전달 jook 2009.02.19 34709
59 아파치2 에서 mod_cband 사용법 sylee 2009.06.05 24553
58 mod_rewrite 모듈 설치 및 기본 사용법 sylee 2009.07.02 38417
57 phpize를 이용하여 모듈 추가 file 호스트웨이 2012.03.15 15582
56 APM 및 OS 버전 확인 하는 방법 호스트웨이 2012.03.30 13982
55 Linux log 분할 방법 (logrotate) 호스트웨이 2012.04.06 12587
54 PHP에서 MS-SQL 서버를 연동하기 위한 방법 호스트웨이 2012.04.13 25303
53 Zend Guard Loader 설치 호스트웨이 2012.04.20 17811
52 apache에서 cgi를 사용하기 위한 설정 방법 호스트웨이 2012.04.27 20125
51 mod_GeoIP를 이용한 국가 IP 확인 및 국가별 접속 제한 호스트웨이 2012.05.04 19934
50 apache ssl 시작시 오류 메세지 호스트웨이 2012.05.11 10054
49 웹페이지에 사용자 인증 사용하기 호스트웨이 2012.05.18 8972
48 ZendOptimizer 3.3.9 설치 file 호스트웨이 2012.06.01 17546
47 PHP 속도 향상을 위한 eAccelerator 설치 호스트웨이 2012.06.15 11264
46 PHP-5.3 버전 이상에서 Deprecated 에러 발생시 처리 방법 호스트웨이 2012.06.22 14713
45 Apache2.4.x 버전 설치 호스트웨이 2012.06.22 23693
44 SSL config error 조치사항 호스트웨이 2012.06.29 9631