채택완료

conv_content 이함수의 기능은 뭘까요?

2015-07-09 (목) 14:14:24 19,420

팝업레이어 newwin.inc.php 파일을 열어보면 컨텐츠를 출력해주는 곳에 conv_content 이함수가 

들어가 있는데요. 

이거를 빼면 스크립트같은것들이 출력이되는데 있으면 출력이안되요...

이거를 빼고싶은데 이놈이 어떤기능을 하는함수고 빼면 무슨 문제가 생기는지 알고싶어요,,,

고수님들 알려주세요

|

답변 2개 / 댓글 1개

채택된 답변
+20 포인트
2015-07-09 (목) 14:22:46

내용 입력 항목에서 HTML, 줄바꿈 등을 적용해주는 함수입니다.

따라서 함수를 빼면 HTML, 줄바꿈​ 등이 적용되지 않게 됩니다.

  

/lib/common.lib.php 파일 490~536 라인에서 conv_content 함수​를 확인하실 수 있습니다. 

Copy
​// 내용을 변환function conv_content($content, $html, $filter=true){    global $config, $board;     if ($html)    {        $source = array();        $target = array();         $source[] = "//";        $target[] = "";         if ($html == 2) { // 자동 줄바꿈            $source[] = "/\n/";            $target[] = "<br/>";        }         // 테이블 태그의 개수를 세어 테이블이 깨지지 않도록 한다.        $table_begin_count = substr_count(strtolower($content), "<table");        $table_end_count = substr_count(strtolower($content), "</table");        for ($i=$table_end_count; $i<$table_begin_count; $i++)        {            $content .= "</table>";        }         $content = preg_replace($source, $target, $content);         if($filter)            $content = html_purifier($content);    }    else // text 이면    {        // & 처리 : &amp; &nbsp; 등의 코드를 정상 출력함        $content = html_symbol($content);         // 공백 처리		//$content = preg_replace("/  /", "&nbsp; ", $content);		$content = str_replace("  ", "&nbsp; ", $content);		$content = str_replace("\n ", "\n&nbsp;", $content);         $content = get_text($content, 1);        $content = url_auto_link($content);    }     return $content;}
2015-07-12 (일) 23:38:19

몬스님, 답변을 채택해 주셔서 감사드립니다. (_ _)

답변에 대한 댓글 1개

conv_content 함수는 보안 필터링과 XSS 방지를 담당하는 핵심 기능이에요. 제 경험상 이 함수는 출력될 내용에서 스크립트 태그나 위험한 코드를 자동 제거하거나 변환해서 브라우저가 실행하지 못하게 막아줍니다. 그래서 함수를 빼면 일반 텍스트처럼 <script> 같은 게 그대로 노출되거나 실행될 수 있고, 해킹이나 악성코드 삽입 위험이 생겨요. 혹시 다른 원리나 대체 방법을 알고 싶으시다면, 예전에 https://1win-korea.ne.kr/ 이쪽에서 1win 한국의 온라인 카지노와 스포츠 베팅 구조에 대한 상세한 기술 리뷰를 읽은 적 있는데, 거기 보안 모듈 설명이 도움이 될 거예요. 저 함수를 무작정 빼기보다는, 그누보드5 매뉴얼을 참고하시는 게 안전합니다.

답변을 작성하려면 로그인이 필요합니다.