Compare commits

..
10 Commits
Author SHA1 Message Date
chicpro b3773217e9 5.2.0 버전변경 2016-07-25 10:44:58 +09:00
chicpro 70f6d92e87 XSS 취약점 수정 16-480 2016-07-21 10:25:46 +09:00
chicpro 042695af55 5.1.19 버전변경 2016-07-05 11:01:48 +09:00
chicpro 85f9523b30 댓글 삭제 토큰 코드 수정 2016-06-28 13:33:28 +09:00
chicpro 8c1d6266af 게시글 댓글 삭제 때 토큰 체크 추가 2016-06-24 17:22:29 +09:00
chicpro 30009dba6f 커맨드 인젝션 취약점(16-418 419) 수정 2016-06-24 17:22:14 +09:00
chicpro 24e7e8823e 가입축하 메일의 메일인증코드 수정 2016-05-24 17:46:02 +09:00
chicpro 42fb4b71a6 5.1.18 버전변경 2016-05-17 10:05:35 +09:00
chicpro f0134b610b 누락된 필드 추가 2016-05-17 10:05:06 +09:00
chicpro c2cf34392a 1:1문의 등록 오류 수정 2016-05-17 10:04:53 +09:00
11 changed files with 38 additions and 32 deletions
+5 -5
View File
@@ -1,11 +1,11 @@
<?php
include_once('./_common.php');
if ($is_admin)
{
if (!($token && get_session('ss_delete_token') == $token))
alert('토큰 에러로 삭제 불가합니다.');
}
$delete_token = get_session('ss_delete_token');
set_session('ss_delete_token', '');
if (!($token && $delete_token == $token))
alert('토큰 에러로 삭제 불가합니다.');
//$wr = sql_fetch(" select * from $write_table where wr_id = '$wr_id' ");
+5 -5
View File
@@ -2,11 +2,11 @@
// 코멘트 삭제
include_once('./_common.php');
if ($is_admin)
{
if (!($token && get_session("ss_delete_token") == $token))
alert('토큰 에러로 삭제 불가합니다.');
}
$delete_comment_token = get_session('ss_delete_comment_'.$comment_id.'_token');
set_session('ss_delete_comment_'.$comment_id.'_token', '');
if (!($token && $delete_comment_token == $token))
alert('토큰 에러로 삭제 불가합니다.');
// 4.1
@include_once($board_skin_path.'/delete_comment.head.skin.php');
+4 -2
View File
@@ -9,11 +9,13 @@ switch ($w) {
$return_url = './board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id;
break;
case 'd' :
$action = './delete.php';
set_session('ss_delete_token', $token = uniqid(time()));
$action = './delete.php?token='.$token;
$return_url = './board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id;
break;
case 'x' :
$action = './delete_comment.php';
set_session('ss_delete_comment_'.$comment_id.'_token', $token = uniqid(time()));
$action = './delete_comment.php?token='.$token;
$row = sql_fetch(" select wr_parent from $write_table where wr_id = '$comment_id' ");
$return_url = './board.php?bo_table='.$bo_table.'&amp;wr_id='.$row['wr_parent'];
break;
+6 -4
View File
@@ -16,9 +16,11 @@ $msg = array();
$qaconfig = get_qa_config();
if(trim($qaconfig['qa_category'])) {
$category = explode('|', $qaconfig['qa_category']);
if(!in_array($qa_category, $category))
alert('분류를 올바르게 지정해 주십시오.');
if($w != 'a') {
$category = explode('|', $qaconfig['qa_category']);
if(!in_array($qa_category, $category))
alert('분류를 올바르게 지정해 주십시오.');
}
} else {
alert('1:1문의 설정에서 분류를 설정해 주십시오');
}
@@ -28,7 +30,7 @@ $qa_email = '';
if(isset($_POST['qa_email']) && $_POST['qa_email'])
$qa_email = get_email_address(trim($_POST['qa_email']));
if($qaconfig['qa_req_email'] && !$qa_email)
if($w != 'a' && $qaconfig['qa_req_email'] && !$qa_email)
$msg[] = '이메일을 입력하세요.';
$qa_subject = '';
+6 -2
View File
@@ -253,8 +253,12 @@ if ($w == '') {
if ($config['cf_email_mb_member']) {
$subject = '['.$config['cf_title'].'] 회원가입을 축하드립니다.';
$mb_md5 = md5($mb_id.$mb_email.G5_TIME_YMDHIS);
$certify_href = G5_BBS_URL.'/email_certify.php?mb_id='.$mb_id.'&amp;mb_md5='.$mb_md5;
// 어떠한 회원정보도 포함되지 않은 일회용 난수를 생성하여 인증에 사용
if ($config['cf_use_email_certify']) {
$mb_md5 = md5(pack('V*', rand(), rand(), rand(), rand()));
sql_query(" update {$g5['member_table']} set mb_email_certify2 = '$mb_md5' where mb_id = '$mb_id' ");
$certify_href = G5_BBS_URL.'/email_certify.php?mb_id='.$mb_id.'&amp;mb_md5='.$mb_md5;
}
ob_start();
include_once ('./register_form_update_mail1.php');
+2 -6
View File
@@ -72,12 +72,8 @@ $update_href = $delete_href = '';
// 로그인중이고 자신의 글이라면 또는 관리자라면 비밀번호를 묻지 않고 바로 수정, 삭제 가능
if (($member['mb_id'] && ($member['mb_id'] == $write['mb_id'])) || $is_admin) {
$update_href = './write.php?w=u&amp;bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;page='.$page.$qstr;
$delete_href = './delete.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;page='.$page.urldecode($qstr);
if ($is_admin)
{
set_session("ss_delete_token", $token = uniqid(time()));
$delete_href ='./delete.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;token='.$token.'&amp;page='.$page.urldecode($qstr);
}
set_session('ss_delete_token', $token = uniqid(time()));
$delete_href ='./delete.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;token='.$token.'&amp;page='.$page.urldecode($qstr);
}
else if (!$write['mb_id']) { // 회원이 쓴 글이 아니라면
$update_href = './password.php?w=u&amp;bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;page='.$page.$qstr;
+3 -5
View File
@@ -9,11 +9,6 @@ if ($is_guest && $board['bo_comment_level'] < 2) {
@include_once($board_skin_path.'/view_comment.head.skin.php');
// 코멘트를 새창으로 여는 경우 세션값이 없으므로 생성한다.
if ($is_admin && !$token) {
set_session("ss_delete_token", $token = uniqid(time()));
}
$list = array();
$is_comment_write = false;
@@ -72,10 +67,13 @@ for ($i=0; $row=sql_fetch_array($result); $i++)
$list[$i]['is_del'] = false;
if ($is_comment_write || $is_admin)
{
$token = '';
if ($member['mb_id'])
{
if ($row['mb_id'] == $member['mb_id'] || $is_admin)
{
set_session('ss_delete_comment_'.$row['wr_id'].'_token', $token = uniqid(time()));
$list[$i]['del_link'] = './delete_comment.php?bo_table='.$bo_table.'&amp;comment_id='.$row['wr_id'].'&amp;token='.$token.'&amp;page='.$page.$qstr;
$list[$i]['is_edit'] = true;
$list[$i]['is_del'] = true;
+1
View File
@@ -39,6 +39,7 @@ function g5_path()
$host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
if(isset($_SERVER['HTTP_HOST']) && preg_match('/:[0-9]+$/', $host))
$host = preg_replace('/:[0-9]+$/', '', $host);
$host = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*]/", '', $host);
$result['url'] = $http.$host.$port.$user.$root;
return $result;
}
+1 -1
View File
@@ -5,7 +5,7 @@
********************/
define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.1.17');
define('G5_GNUBOARD_VER', '5.2.0');
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define('_GNUBOARD_', true);
+2 -1
View File
@@ -463,7 +463,8 @@ CREATE TABLE IF NOT EXISTS `g5_member` (
`mb_ip` varchar(255) NOT NULL default '',
`mb_leave_date` varchar(8) NOT NULL default '',
`mb_intercept_date` varchar(8) NOT NULL default '',
`mb_email_certify` datetime NOT NULL default '0000-00-00 00:00:00',
`mb_email_certify` datetime NOT NULL default '0000-00-00 00:00:00',
`mb_email_certify2` varchar(255) NOT NULL default '',
`mb_memo` text NOT NULL,
`mb_lost_certify` varchar(255) NOT NULL,
`mb_mailling` tinyint(4) NOT NULL default '0',
+3 -1
View File
@@ -33,6 +33,8 @@ else
$clientDomain = $_SERVER['SERVER_NAME'];
unset($p);
$clientDomain = escapeshellarg($clientDomain);
$rsv1 = '0'; // 예약 항목
$rsv2 = '0'; // 예약 항목
@@ -78,5 +80,5 @@ if($config['cf_cert_use'] == 2) {
// ########################################################################
// # 리턴 URL 설정
// ########################################################################
$returnUrl = G5_OKNAME_URL.'/hpcert2.php'; // 본인인증 완료후 리턴될 URL (도메인 포함 full path)
$returnUrl = escapeshellarg(G5_OKNAME_URL.'/hpcert2.php'); // 본인인증 완료후 리턴될 URL (도메인 포함 full path)
?>