그누보드 [G5] 올바른 방법으로 이용해 주십시오.
페이지 정보
본문
업그레이드 되면서 보안 강화차원에서 새로운 코드가 추가됩니다.
1. 그누보드5 / skin / board / 폴더 / write.skin.php
1-1. 수정1
<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:<?php echo $width; ?>">
<input type="hidden" name="w" value="<?php echo $w ?>">
에서 아래와 같이 uid 관련 코드가 없으면 추가하세요
<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:<?php echo $width; ?>">
<input type="hidden" name="uid" value="<?php echo get_uniqid(); ?>">
<input type="hidden" name="w" value="<?php echo $w ?>">
1-2. 수정2
<input type="submit" value="작성완료" id="btn_submit" accesskey="s" class="btn_submit">
5.2.3 버전에서 게시글 CSRF 취약점 관련 수정되면서 type="sumit" 가 아닌 경우엔 오류 발생
type="button" 또는 type="image" 등을 사용하고자 하는 경우엔 http://sir.kr/g5_tip/4837 참고
2. 그누보드5 / skin / board / 폴더 / view_comment.skin.php
2-1. 수정1
<form name="fviewcomment" action="<?php echo $comment_action_url; ?>" onsubmit="return fviewcomment_submit(this);" method="post" autocomplete="off">
<input type="hidden" name="uid" value="<?php echo get_uniqid(); ?>">
<input type="hidden" name="w" value="<?php echo $w ?>" id="w">
에서 아래와 같이 uid 관련 코드가 없으면 추가하세요
<form name="fviewcomment" action="<?php echo $comment_action_url; ?>" onsubmit="return fviewcomment_submit(this);" method="post" autocomplete="off">
<input type="hidden" name="w" value="<?php echo $w ?>" id="w">
2-2. 수정2
<?php if($is_guest) echo chk_captcha_js(); ?>
의 내용이 추가
<?php if($is_guest) echo chk_captcha_js(); ?>
set_comment_token(f);
2-3. 수정3
$query_string = str_replace("&", "&", $_SERVER['QUERY_STRING']);
의 내용이 보이면 아래의 것으로 변경하세요.
$query_string = clean_query_string($_SERVER['QUERY_STRING']);
2-4. 수정4
$query_string = clean_query_string($_SERVER['QUERY_STRING']);
if($w == 'cu') {
$sql = " select wr_id, wr_content from $write_table where wr_id = '$c_id' and wr_is_comment = '1' ";
$cmt = sql_fetch($sql);
$c_wr_content = $cmt['wr_content'];
와 같이 코드가 보이면 아래처럼 변경하세요.
$query_string = clean_query_string($_SERVER['QUERY_STRING']);
if($w == 'cu') {
$sql = " select wr_id, wr_content, mb_id from $write_table where wr_id = '$c_id' and wr_is_comment = '1' ";
$cmt = sql_fetch($sql);
if (!($is_admin || ($member['mb_id'] == $cmt['mb_id'] && $cmt['mb_id'])))
$cmt['wr_content'] = '';
$c_wr_content = $cmt['wr_content'];
3. jquery 중복 사용
동일 또는 다른 버전의 jquery.min.js 이 중복으로 사용되면 발생합니다.
소스보기에서 중복으로 jquery 가 호출된것은 아닌지 확인해보세요
예를 들면 이런식으로
<script src="/js/jquery-1.8.3.min.js"></script>
...
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
4. 그누보드5 -> 관리자 -> 환경설정 -> 세션 삭제
위의 작업을 진행한후 익스플로러, 크롬, 파이어폭스, 사파리 등 다양한 브라우저로 테스트를 하세요
일부 브라우저는 캐시/임시파일 등으로 인해서 변경된것을 인지 못하는 경우가 있습니다.
참고자료
http://sir.kr/g5_tip/4524
http://sir.kr/g5_tip/4837
https://sir.kr/qa/265192
1. 그누보드5 / skin / board / 폴더 / write.skin.php
1-1. 수정1
<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:<?php echo $width; ?>">
<input type="hidden" name="w" value="<?php echo $w ?>">
에서 아래와 같이 uid 관련 코드가 없으면 추가하세요
<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:<?php echo $width; ?>">
<input type="hidden" name="uid" value="<?php echo get_uniqid(); ?>">
<input type="hidden" name="w" value="<?php echo $w ?>">
1-2. 수정2
<input type="submit" value="작성완료" id="btn_submit" accesskey="s" class="btn_submit">
5.2.3 버전에서 게시글 CSRF 취약점 관련 수정되면서 type="sumit" 가 아닌 경우엔 오류 발생
type="button" 또는 type="image" 등을 사용하고자 하는 경우엔 http://sir.kr/g5_tip/4837 참고
2. 그누보드5 / skin / board / 폴더 / view_comment.skin.php
2-1. 수정1
<form name="fviewcomment" action="<?php echo $comment_action_url; ?>" onsubmit="return fviewcomment_submit(this);" method="post" autocomplete="off">
<input type="hidden" name="uid" value="<?php echo get_uniqid(); ?>">
<input type="hidden" name="w" value="<?php echo $w ?>" id="w">
에서 아래와 같이 uid 관련 코드가 없으면 추가하세요
<form name="fviewcomment" action="<?php echo $comment_action_url; ?>" onsubmit="return fviewcomment_submit(this);" method="post" autocomplete="off">
<input type="hidden" name="w" value="<?php echo $w ?>" id="w">
2-2. 수정2
<?php if($is_guest) echo chk_captcha_js(); ?>
의 내용이 추가
<?php if($is_guest) echo chk_captcha_js(); ?>
set_comment_token(f);
2-3. 수정3
$query_string = str_replace("&", "&", $_SERVER['QUERY_STRING']);
의 내용이 보이면 아래의 것으로 변경하세요.
$query_string = clean_query_string($_SERVER['QUERY_STRING']);
2-4. 수정4
$query_string = clean_query_string($_SERVER['QUERY_STRING']);
if($w == 'cu') {
$sql = " select wr_id, wr_content from $write_table where wr_id = '$c_id' and wr_is_comment = '1' ";
$cmt = sql_fetch($sql);
$c_wr_content = $cmt['wr_content'];
와 같이 코드가 보이면 아래처럼 변경하세요.
$query_string = clean_query_string($_SERVER['QUERY_STRING']);
if($w == 'cu') {
$sql = " select wr_id, wr_content, mb_id from $write_table where wr_id = '$c_id' and wr_is_comment = '1' ";
$cmt = sql_fetch($sql);
if (!($is_admin || ($member['mb_id'] == $cmt['mb_id'] && $cmt['mb_id'])))
$cmt['wr_content'] = '';
$c_wr_content = $cmt['wr_content'];
3. jquery 중복 사용
동일 또는 다른 버전의 jquery.min.js 이 중복으로 사용되면 발생합니다.
소스보기에서 중복으로 jquery 가 호출된것은 아닌지 확인해보세요
예를 들면 이런식으로
<script src="/js/jquery-1.8.3.min.js"></script>
...
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
4. 그누보드5 -> 관리자 -> 환경설정 -> 세션 삭제
위의 작업을 진행한후 익스플로러, 크롬, 파이어폭스, 사파리 등 다양한 브라우저로 테스트를 하세요
일부 브라우저는 캐시/임시파일 등으로 인해서 변경된것을 인지 못하는 경우가 있습니다.
참고자료
http://sir.kr/g5_tip/4524
http://sir.kr/g5_tip/4837
https://sir.kr/qa/265192
댓글목록
등록된 댓글이 없습니다.