Web DEV/PHP
addslashes,stripslashes
황금니
2010. 7. 21. 03:55
addslashes 는 "aaa" 값이 넘어오면 DB에 들어갈때 \"aa\" 으로 변환
,stripslashes 는 반대이다
,stripslashes 는 반대이다
db insert,update 시 addshases는 기본보안 항목일겁니다.
다만, post해서 넘어온 변수를 일일이 addslashes해주는 건 귀찮은 일입니다.
반대로 select로 불러온 뒤 stripslashes하는 것도 상당히 귀찮은 일입니다.
이를 간판하게 하는 방법이 있습니다.
여기에 쉽게 사용방법이 array_map() 함수입니다.
post경우
$_POST=array_map('addslashes', $_POST);
select경우
$re=mysql_query("select.......
while($data=mysql_fetch_array($re)){
$data=array_map('stripslashes', $data);
}
부가적으로
$_POST=array_map('addslashes', $_POST);
이를 한방에 해결하는 것이 아래입니다.
magic_quotes_gpc()=on
이는 phpinfo(); 를 통해 알수있겠습니다.
이는 php.ini 설정값으로, on 으로 하면 되겠습니다. 다만, 보안상 권하지는 않습니다.
해서 이 값은 .htaccess를 통해 변경이 가능한데, off 로 바꿔주고,
$_POST=array_map('addslashes', $_POST);
으로 해주는 것이 좋습니다.
ex)
if(!get_magic_quotes_gpc()){
$_GET=array_map('addslashes', $_GET);
$_POST=array_map('addslashes', $_POST);
$_COOKIE=array_map('addslashes', $_COOKIE);
}
//`register_globals = off 에 따른 gps 배열변수 extract`
extract($_GET);
extract($_POST);
extract($_SERVER);
$_GET=array_map('addslashes', $_GET);
$_POST=array_map('addslashes', $_POST);
$_COOKIE=array_map('addslashes', $_COOKIE);
}
//`register_globals = off 에 따른 gps 배열변수 extract`
extract($_GET);
extract($_POST);
extract($_SERVER);
[출처] addslashes,stripslashes 를 편하게하기 |작성자 퇴깽이