편리님 답변보고 적용했는데 이런 방식이 맞는지 문의 드립니다.

편리님 답변보고 적용했는데 이런 방식이 맞는지 문의 드립니다.

QA

편리님 답변보고 적용했는데 이런 방식이 맞는지 문의 드립니다.

답변 1

본문

답변해주신 편리님에게 먼저 감사드립니다~

지난 질문에 편리님께서 아래와 같이 답변해 주신 것을 이해를 못하다가,

 

말씀하신 부분을 주석처리하셔도 기본 기능은 정상작동할 겁니다.

다만 게시글 쓰기 등에서 따옴표(') 등이 있을 때 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);
}
//============================================================================== 

 

이 질문에 댓글 쓰기 :

답변 1

작동에 이상이 없다면 위와 같은 코드를 적용하셔도 문제는 없을 것 같습니다.

그러나 그누보드5 기본코드와는 다르기 때문에 충분히 테스트를 해보셔야 합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 5
© SIRSOFT
현재 페이지 제일 처음으로