편리님 답변보고 적용했는데 이런 방식이 맞는지 문의 드립니다.
본문
답변해주신 편리님에게 먼저 감사드립니다~
지난 질문에 편리님께서 아래와 같이 답변해 주신 것을 이해를 못하다가,
말씀하신 부분을 주석처리하셔도 기본 기능은 정상작동할 겁니다.
다만 게시글 쓰기 등에서 따옴표(') 등이 있을 때 escape 함수가 적용되지 않아
별도로 addslashes 등의 함수가 적용되도록 코드를 수정하셔야만 할 겁니다.
common.php 파일에 아래 구문으로 변경했더니 정규표현식도 이상없고, 말씀하신 따옴표가 들어가도 홈페이지가 정상작동을 합니다. (common.php 파일의 SQL Injection 정의 부분(line 84~100)은 주석처리 된 상태)
편리님께서 말씀하신 "별도로 addslashes 등의 함수가 적용되도록 코드를 수정하셔야만 할 겁니다." 이 부분을 맞게 적용한 것인가요?
//==============================================================================
// php.ini 의 magic_quotes_gpc 값이 Off 인 경우 addslashes() 적용
// SQL Injection 등으로 부터 보호
// http://kr.php.net/manual/en/function.get-magic-quotes-gpc.php#97783
//------------------------------------------------------------------------------
if (!get_magic_quotes_gpc()) {
$escape_function = 'addslashes($value)';
$addslashes_deep = create_function('&$value, $fn', '
if (is_string($value)) {
$value = ' . $escape_function . ';
} else if (is_array($value)) {
foreach ($value as &$v) $fn($v, $fn);
}
');
// Escape data
$addslashes_deep($_POST, $addslashes_deep);
$addslashes_deep($_GET, $addslashes_deep);
$addslashes_deep($_COOKIE, $addslashes_deep);
$addslashes_deep($_REQUEST, $addslashes_deep);
}
//==============================================================================
!-->
답변을 작성하시기 전에 로그인 해주세요.