테스트 사이트 - 개발 중인 베타 버전입니다

[팁] addslashes,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);

으로 해주는 것이 좋습니다.

도움되시길..

출처 : 본인작성
[이 게시물은 관리자님에 의해 2011-10-31 17:16:08 PHP & HTML에서 이동 됨]

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 2개

현재그누는 get방식


참조
http://www.php.net/manual/kr/function.get-magic-quotes-gpc.php

검색 만들면서 적용해 봤는데 아주 좋더군요^^
//짧은 스타일의 변수로 만든다.
$SearchType=$_POST['SearchType'];
$SearchTerm=$_POST['SearchTerm'];
적용예)
// 자동으로 역슬래쉬
if (!get_magic_quotes_gpc()){
$SearchType = addslashes($SearchType);
$SearchTerm = addslashes($SearchTerm);
}

처리.......................

good! 함수~
제껍니다..

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);

게시글 목록

번호 제목
32341
32339
32326
32325
32322
32319
32318
32316
32315
32313
32312
32311
32310
32304
32303
32300
32293
32292
32291
32285
32284
32275
32271
32268
32265
32261
32258
32257
32255
32254
32253
32251
32250
32249
32247
32246
32245
32244
32243
32242
32241
32240
32239
32238
32237
32236
32232
32229
32228
32227
32217
32215
32214
32213
32211
32207
32196
32193
32192
32190
32188
32186
32184
32173
32172
32171
32167
32165
32163
32162
32158
32157
32155
32151
32149
32135
32132
32127
32125
32122
32120
32119
32117
32116
32115
32114
32112
32111
32109
32107
32104
32103
32102
32101
32094
32089
20404
31036
8279
8268