리자님 그누보드 UTF-8 버전 버그 정보
리자님 그누보드 UTF-8 버전 버그
본문
리자님 인젝션 때문에 mysql_real_escape_string 함수 common.lib.php 에 심으셨잖아요
UTF-8버전에서 아래 부분에서 mysql_real_escape_string 요것때문에
stx 필드 검색했을때 한글깨짐 현상이 나타나요
$stx = mysql_real_escape_string($stx);
$qstr .= '&stx=' . urlencode($stx);
$qstr .= '&stx=' . urlencode($stx);
아래처럼 바꾸고
$stx = mysql_real_escape_string($stx);
$qstr .= '&stx=' . urlencode(stripslashes($stx));
$qstr .= '&stx=' . urlencode(stripslashes($stx));
검색 들어간부분에 <?=stripslashes($stx);?> 로 바꺼야되는 아닌가요
그리고 admin.lib.php 하단에 $qstr 변수 재선언하는 부분이있어서
common.php 것을 같이 사용할수가없네요 기본에서는 빼야되는게 맞는것같은데요
$qstr = "";
if (isset($sst)) $qstr .= "&sst=$sst";
if (isset($sod)) $qstr .= "&sod=$sod";
if (isset($sfl)) $qstr .= "&sfl=$sfl";
if (isset($stx)) $qstr .= "&stx=$stx";
if (isset($page)) $qstr .= "&page=$page";
//$qstr = "sst=$sst&sod=$sod&sfl=$sfl&stx=$stx&page=$page";
if (isset($sst)) $qstr .= "&sst=$sst";
if (isset($sod)) $qstr .= "&sod=$sod";
if (isset($sfl)) $qstr .= "&sfl=$sfl";
if (isset($stx)) $qstr .= "&stx=$stx";
if (isset($page)) $qstr .= "&page=$page";
//$qstr = "sst=$sst&sod=$sod&sfl=$sfl&stx=$stx&page=$page";
추천
0
0
댓글 9개


php 버전에 따라서 차이가 있는것같더라구요
PHP Version 5.2.9 버전에서는 깨지고
PHP Version 5.2.9p2 여기서 는 안깨지더라구요
PHP Version 5.2.9 버전에서는 깨지고
PHP Version 5.2.9p2 여기서 는 안깨지더라구요


해당 페이지의 소스를 보면 euc-kr 과 utf-8 이 섞여 있는것으로 보입니다.


엇! 제가 실수했네요.
원인을 알았으니 코드를 점검해 보겠습니다.
감사합니다.
원인을 알았으니 코드를 점검해 보겠습니다.
감사합니다.

네 이미
bbs/list.php 파일 재일 하단에도 아래 코드가 심어져있습니다.
$stx = get_text(stripslashes($stx));
bbs/list.php 파일 재일 하단에도 아래 코드가 심어져있습니다.
$stx = get_text(stripslashes($stx));

깨지는 곳 있으면 주소를 좀 알려주십시오. 감사합니다.

보니까 기본 basic 게시판에는 아래처럼 처리하셨네요
다른곳은 안되어져있구요
<input type='text' name='stx' id='stx' size='20' maxlength='20' class='text' value='<?=stripslashes($stx)?>' />
다른곳은 안되어져있구요
<input type='text' name='stx' id='stx' size='20' maxlength='20' class='text' value='<?=stripslashes($stx)?>' />