Linux WEB

register_globals 옵션에 따른 변수 전달

2009.02.19 00:18

jook 조회 수:34732

보안상의 이유로 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>

번호 제목 글쓴이 날짜 조회 수
43 Apache / PHP 최신버전 설치하기 호스트웨이 2015.09.25 16493
42 CentOS 6.3 에 apache, php, mysql, phpmyAdmin(LAMP) 설치하기 #1 호스트웨이 2012.08.07 17343
41 ZendOptimizer 3.3.9 설치 file 호스트웨이 2012.06.01 17546
40 [php] 세션 유지시간 설정하기 호스트웨이 2012.10.25 17804
39 Zend Guard Loader 설치 호스트웨이 2012.04.20 17825
38 nginx - redirect 설정 호스트웨이 2012.08.24 17883
37 server-status를 이용한 아파치 모니터링 방법 file 호스트웨이 2016.04.05 18232
36 apache internal dummy connection 로그 생성 방지하기 호스트웨이 2012.09.06 18696
35 Apache Max Client 값 수정 호스트웨이 2012.08.31 19637
34 Debian 에서 mod_rewrite 활성화 하기 jook 2008.12.12 19805
33 mod_GeoIP를 이용한 국가 IP 확인 및 국가별 접속 제한 호스트웨이 2012.05.04 19944
32 apache1.3 + mod_ssl - 보안서버 구축하기 sylee 2008.05.15 20082
31 apache에서 cgi를 사용하기 위한 설정 방법 호스트웨이 2012.04.27 20135
30 Debian에서 apm 설치할때의 패키지 목록 jook 2008.12.27 20175
29 설치된 서버 php에서 지원되는 함수 확인 하기 hostway 2008.05.14 20204
28 Apache 설치 후 WEB 403 Forbidden 에러 호스트웨이 2015.09.08 20318
27 SSL 패스워드 삭제 하기 호스트웨이 2012.09.05 20690
26 httpd-2.x.x 에서의 SERVER_LIMIT 변경 hostway 2008.05.14 20922
25 아파치 환경설정 파일분석 1번째 sylee 2008.05.14 21377
24 apache2.x - 보안서버 구축하기 sylee 2008.05.15 22985