[도로명주소 보완] 그누보드 4.37.02 정보
[도로명주소 보완] 그누보드 4.37.02첨부파일
본문
4.37.02 (2014.01.03)
: XSS 취약점을 해결 (한국인터넷진흥원에서 알려주셨습니다.)
bbs/new.php
$mb_id = preg_replace('/[^0-9a-z\-\_]/i', '', $_GET['mb_id']);
: 도로명주소 보완
도로명주소 표기방법에 맞게 도로명주소의 참고항목 필드를 하나 더 추가하게 되었습니다.
회원테이블에 도로명주소 참고항목 필드(mb_addr3) 추가를 위해 관리자 > 회원관리 > 수정을 한번 이상 실행해 주십시오.
예) http://www.juso.go.kr/street/StreetAbout4.htm
서울특별시 서초구 반포대로 58, 101동 501호 (서초동, 서초아트자이)
서울특별시 서초구 반포대로23길6 (서초동)
adm/member_form.php
adm/member_form_update.php
bbs/register_form_update.php
js/common.js
skin/member/basic/register_form.skin.php
skin/member/basic/zip.skin.php
=== 수정사항 ===
adm/member_form.php
$mb[mb_addr3] = get_text($mb[mb_addr3]);
$mb[mb_addr_jibeon] = get_text($mb[mb_addr_jibeon]);
...
// 도로명주소 참고항목 필드추가
if(!isset($mb['mb_addr3'])) {
sql_query(" ALTER TABLE {$g4['member_table']} ADD `mb_addr3` varchar(255) NOT NULL DEFAULT '' AFTER `mb_addr2` ", false);
}
...
<input type=text class=ed name='mb_zip1' size=4 maxlength=3 readonly itemname='우편번호 앞자리' value='<? echo $mb[mb_zip1] ?>'> -
<input type=text class=ed name='mb_zip2' size=4 maxlength=3 readonly itemname='우편번호 뒷자리' value='<? echo $mb[mb_zip2] ?>'>
<a href="javascript:;" onclick="win_zip('fmember', 'mb_zip1', 'mb_zip2', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');"><img src='<?=$g4[bbs_img_path]?>/btn_zip.gif' align=absmiddle border=0></a>
<br><input type=text class=ed name='mb_addr1' size=40 readonly value='<? echo $mb[mb_addr1] ?>'> 기본주소
<br><input type=text class=ed name='mb_addr2' size=40 itemname='상세주소' value='<? echo $mb[mb_addr2] ?>'> 상세주소
<br><input type=text class=ed name='mb_addr3' size=40 itemname='참고항목' value='<? echo $mb[mb_addr3] ?>'> 참고항목
<br><input type="hidden" name="mb_addr_jibeon" value="<?=$mb['mb_addr_jibeon']; ?>">
<span id="mb_addr_jibeon"><?=($mb['mb_addr_jibeon'] ? '지번주소 : '.$mb['mb_addr_jibeon'] : ''); ?></span>
adm/member_form_update.php
mb_addr3 = '$_POST[mb_addr3]',
bbs/register_form_update.php
mb_addr3 = '$mb_addr3', // if ($w == "")
...
mb_addr3 = '$mb_addr3', // if ($w == "u")
js/common.js
// 도로명 우편번호 창
function win_zip(frm_name, frm_zip1, frm_zip2, frm_addr1, frm_addr2, frm_addr3, frm_jibeon)
{
url = g4_path + "/" + g4_bbs + "/zip.php?frm_name="+frm_name+"&frm_zip1="+frm_zip1+"&frm_zip2="+frm_zip2+"&frm_addr1="+frm_addr1+"&frm_addr2="+frm_addr2+"&frm_addr3="+frm_addr3+"&frm_jibeon="+frm_jibeon;
win_open(url, "winZip", "left=50,top=50,width=616,height=460,scrollbars=1");
}
skin/member/basic/register_form.skin.php
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="25"><input class=ed type=text name='mb_zip1' size=4 maxlength=3 readonly <?=$config[cf_req_addr]?'required':'';?> itemname='우편번호 앞자리' value='<?=$member[mb_zip1]?>' style="vertical-align:middle">
-
<input class=ed type=text name='mb_zip2' size=4 maxlength=3 readonly <?=$config[cf_req_addr]?'required':'';?> itemname='우편번호 뒷자리' value='<?=$member[mb_zip2]?>' style="vertical-align:middle">
<a href="javascript:;" onclick="win_zip('fregisterform', 'mb_zip1', 'mb_zip2', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');" align=absmiddle><img width="74" height="20" src="<?=$member_skin_path?>/img/post_search_btn.gif" border=0 align=absmiddle></a></td>
</tr>
<tr>
<td height="25" colspan="2"><input class=ed type=text name='mb_addr1' size=60 readonly <?=$config[cf_req_addr]?'required':'';?> itemname='기본주소' value='<?=$member[mb_addr1]?>'> 기본주소</td>
</tr>
<tr>
<td height="25" colspan="2"><input class=ed type=text name='mb_addr2' size=60 <?=$config[cf_req_addr]?'required':'';?> itemname='상세주소' value='<?=$member[mb_addr2]?>'> 상세주소</td>
</tr>
<tr>
<td height="25" colspan="2"><input class=ed type=text name='mb_addr3' size=60 readonly itemname='참고항목' value='<?=$member[mb_addr3]?>'> 참고항목</td>
</tr>
<tr>
<td height="25" colspan="2">
<input type="hidden" name="mb_addr_jibeon" value="<?=$member['mb_addr_jibeon']; ?>">
<span id="mb_addr_jibeon"><?=($member['mb_addr_jibeon'] ? '지번주소 : '.$member['mb_addr_jibeon'] : ''); ?></span>
</td>
</tr>
</table>
skin/member/basic/zip.skin.php
function put_data(zip1, zip2, addr1, addr3, jibeon)
{
var of = window.opener.document.<?php echo $frm_name; ?>;
of.<?php echo $frm_zip1; ?>.value = zip1;
of.<?php echo $frm_zip2; ?>.value = zip2;
of.<?php echo $frm_addr1; ?>.value = addr1;
of.<?php echo $frm_addr2; ?>.value = "";
of.<?php echo $frm_addr3; ?>.value = addr3;
$('#<?php echo $frm_jibeon; ?>', opener.document).text("지번주소 : "+jibeon);
if(of.<?php echo $frm_jibeon; ?> !== undefined)
of.<?php echo $frm_jibeon; ?>.value = jibeon;
window.close();
}
: XSS 취약점을 해결 (한국인터넷진흥원에서 알려주셨습니다.)
bbs/new.php
$mb_id = preg_replace('/[^0-9a-z\-\_]/i', '', $_GET['mb_id']);
: 도로명주소 보완
도로명주소 표기방법에 맞게 도로명주소의 참고항목 필드를 하나 더 추가하게 되었습니다.
회원테이블에 도로명주소 참고항목 필드(mb_addr3) 추가를 위해 관리자 > 회원관리 > 수정을 한번 이상 실행해 주십시오.
예) http://www.juso.go.kr/street/StreetAbout4.htm
서울특별시 서초구 반포대로 58, 101동 501호 (서초동, 서초아트자이)
서울특별시 서초구 반포대로23길6 (서초동)
adm/member_form.php
adm/member_form_update.php
bbs/register_form_update.php
js/common.js
skin/member/basic/register_form.skin.php
skin/member/basic/zip.skin.php
=== 수정사항 ===
adm/member_form.php
$mb[mb_addr3] = get_text($mb[mb_addr3]);
$mb[mb_addr_jibeon] = get_text($mb[mb_addr_jibeon]);
...
// 도로명주소 참고항목 필드추가
if(!isset($mb['mb_addr3'])) {
sql_query(" ALTER TABLE {$g4['member_table']} ADD `mb_addr3` varchar(255) NOT NULL DEFAULT '' AFTER `mb_addr2` ", false);
}
...
<input type=text class=ed name='mb_zip1' size=4 maxlength=3 readonly itemname='우편번호 앞자리' value='<? echo $mb[mb_zip1] ?>'> -
<input type=text class=ed name='mb_zip2' size=4 maxlength=3 readonly itemname='우편번호 뒷자리' value='<? echo $mb[mb_zip2] ?>'>
<a href="javascript:;" onclick="win_zip('fmember', 'mb_zip1', 'mb_zip2', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');"><img src='<?=$g4[bbs_img_path]?>/btn_zip.gif' align=absmiddle border=0></a>
<br><input type=text class=ed name='mb_addr1' size=40 readonly value='<? echo $mb[mb_addr1] ?>'> 기본주소
<br><input type=text class=ed name='mb_addr2' size=40 itemname='상세주소' value='<? echo $mb[mb_addr2] ?>'> 상세주소
<br><input type=text class=ed name='mb_addr3' size=40 itemname='참고항목' value='<? echo $mb[mb_addr3] ?>'> 참고항목
<br><input type="hidden" name="mb_addr_jibeon" value="<?=$mb['mb_addr_jibeon']; ?>">
<span id="mb_addr_jibeon"><?=($mb['mb_addr_jibeon'] ? '지번주소 : '.$mb['mb_addr_jibeon'] : ''); ?></span>
adm/member_form_update.php
mb_addr3 = '$_POST[mb_addr3]',
bbs/register_form_update.php
mb_addr3 = '$mb_addr3', // if ($w == "")
...
mb_addr3 = '$mb_addr3', // if ($w == "u")
js/common.js
// 도로명 우편번호 창
function win_zip(frm_name, frm_zip1, frm_zip2, frm_addr1, frm_addr2, frm_addr3, frm_jibeon)
{
url = g4_path + "/" + g4_bbs + "/zip.php?frm_name="+frm_name+"&frm_zip1="+frm_zip1+"&frm_zip2="+frm_zip2+"&frm_addr1="+frm_addr1+"&frm_addr2="+frm_addr2+"&frm_addr3="+frm_addr3+"&frm_jibeon="+frm_jibeon;
win_open(url, "winZip", "left=50,top=50,width=616,height=460,scrollbars=1");
}
skin/member/basic/register_form.skin.php
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="25"><input class=ed type=text name='mb_zip1' size=4 maxlength=3 readonly <?=$config[cf_req_addr]?'required':'';?> itemname='우편번호 앞자리' value='<?=$member[mb_zip1]?>' style="vertical-align:middle">
-
<input class=ed type=text name='mb_zip2' size=4 maxlength=3 readonly <?=$config[cf_req_addr]?'required':'';?> itemname='우편번호 뒷자리' value='<?=$member[mb_zip2]?>' style="vertical-align:middle">
<a href="javascript:;" onclick="win_zip('fregisterform', 'mb_zip1', 'mb_zip2', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');" align=absmiddle><img width="74" height="20" src="<?=$member_skin_path?>/img/post_search_btn.gif" border=0 align=absmiddle></a></td>
</tr>
<tr>
<td height="25" colspan="2"><input class=ed type=text name='mb_addr1' size=60 readonly <?=$config[cf_req_addr]?'required':'';?> itemname='기본주소' value='<?=$member[mb_addr1]?>'> 기본주소</td>
</tr>
<tr>
<td height="25" colspan="2"><input class=ed type=text name='mb_addr2' size=60 <?=$config[cf_req_addr]?'required':'';?> itemname='상세주소' value='<?=$member[mb_addr2]?>'> 상세주소</td>
</tr>
<tr>
<td height="25" colspan="2"><input class=ed type=text name='mb_addr3' size=60 readonly itemname='참고항목' value='<?=$member[mb_addr3]?>'> 참고항목</td>
</tr>
<tr>
<td height="25" colspan="2">
<input type="hidden" name="mb_addr_jibeon" value="<?=$member['mb_addr_jibeon']; ?>">
<span id="mb_addr_jibeon"><?=($member['mb_addr_jibeon'] ? '지번주소 : '.$member['mb_addr_jibeon'] : ''); ?></span>
</td>
</tr>
</table>
skin/member/basic/zip.skin.php
function put_data(zip1, zip2, addr1, addr3, jibeon)
{
var of = window.opener.document.<?php echo $frm_name; ?>;
of.<?php echo $frm_zip1; ?>.value = zip1;
of.<?php echo $frm_zip2; ?>.value = zip2;
of.<?php echo $frm_addr1; ?>.value = addr1;
of.<?php echo $frm_addr2; ?>.value = "";
of.<?php echo $frm_addr3; ?>.value = addr3;
$('#<?php echo $frm_jibeon; ?>', opener.document).text("지번주소 : "+jibeon);
if(of.<?php echo $frm_jibeon; ?> !== undefined)
of.<?php echo $frm_jibeon; ?>.value = jibeon;
window.close();
}
댓글 전체
잘사용 하겠습니다~ ^^
고맙습니다.
회원테이블에 도로명주소 참고항목 필드(mb_addr3) 추가를 위해 관리자 > 회원관리 > 수정을 한번 이상 실행해 주십시오. 를 실행을 했는데도 데이터베이스에 mb_addr3 필드가 실행이 저는 안되네여...ㅡㅡ
저도 안되는데 해결 하셨나요???
--;
--;
관리자님한테 이것에 대해서 문의해서 확인해 주신다고 했는데...
내일이나 되야 답변을 얻을수 있을거 같아요
내일이나 되야 답변을 얻을수 있을거 같아요
시원한 답변이 나오길 기다려보겠습니다~
감사합니다.
감사합니다.
$mb_id = preg_replace('/[^0-9a-z\-\_]/i', '', $_GET['mb_id']);
bbs/new.php 어디쯤에 넣어야 하나요?
bbs/new.php 어디쯤에 넣어야 하나요?
맨위
<?
include_once("./_common.php");
$mb_id = preg_replace('/[^0-9a-z\-\_]/i', '', $_GET['mb_id']);
$g4[title] = "최근 게시물";
include_once("./_common.php"); 다음에 넣으시면 되여
<?
include_once("./_common.php");
$mb_id = preg_replace('/[^0-9a-z\-\_]/i', '', $_GET['mb_id']);
$g4[title] = "최근 게시물";
include_once("./_common.php"); 다음에 넣으시면 되여
자세한 답변 고맙습니다. ^^*
원본을 보지 않았지만,
if ($mb_id)
$sql_common .= " and a.mb_id = '$mb_id' ";
이 부분이 좀 더 맞아 보입니다.
if ($_GET['mb_id']) {
$mb_id = preg_replace('/[^0-9a-z\-\_]/i', '', $_GET['mb_id']);
$sql_common .= " and a.mb_id = '$mb_id' ";
}
그런데 id 값에 . <-- 점 까지 들어가도 괜찮아 보입니다.
> ([^\w-.]+)
if ($mb_id)
$sql_common .= " and a.mb_id = '$mb_id' ";
이 부분이 좀 더 맞아 보입니다.
if ($_GET['mb_id']) {
$mb_id = preg_replace('/[^0-9a-z\-\_]/i', '', $_GET['mb_id']);
$sql_common .= " and a.mb_id = '$mb_id' ";
}
그런데 id 값에 . <-- 점 까지 들어가도 괜찮아 보입니다.
> ([^\w-.]+)
원본상에는 저기 위에 저부분에 들어가 있습니다.
답변 고맙습니다. 그런데, 위 설명이 잘 이해가.. ^^;;;
---------------------------------------------------------
if ($mb_id)
$sql_common .= " and a.mb_id = '$mb_id' ";
대신, 아래 소스로 교체하라는 말씀이신가요?
if ($_GET['mb_id']) {
$mb_id = preg_replace('/[^0-9a-z\-\_]/i', '', $_GET['mb_id']);
$sql_common .= " and a.mb_id = '$mb_id' ";
}
---------------------------------------------------------
그리고, 아래 글은 무슨 의미인지?
---------------------------------------------------------
그런데 id 값에 . <-- 점 까지 들어가도 괜찮아 보입니다.
> ([^\w-.]+)
---------------------------------------------------------
---------------------------------------------------------
if ($mb_id)
$sql_common .= " and a.mb_id = '$mb_id' ";
대신, 아래 소스로 교체하라는 말씀이신가요?
if ($_GET['mb_id']) {
$mb_id = preg_replace('/[^0-9a-z\-\_]/i', '', $_GET['mb_id']);
$sql_common .= " and a.mb_id = '$mb_id' ";
}
---------------------------------------------------------
그리고, 아래 글은 무슨 의미인지?
---------------------------------------------------------
그런데 id 값에 . <-- 점 까지 들어가도 괜찮아 보입니다.
> ([^\w-.]+)
---------------------------------------------------------
감사합니다.
감사합니다.
감사합니다.