Giter Club home page Giter Club logo

gnuboard5's Introduction

gnuboard5's People

Contributors

39hn avatar chicpro avatar iz4blue avatar jeonghs2015 avatar kagla avatar kimtom89 avatar kitrio avatar kkigomi avatar leebokyung avatar loves2tu avatar mabin-j avatar maycactus-foss avatar minsupkr avatar projectsylas avatar seeoya avatar sora90224 avatar sungkyuchun avatar thisgun avatar whitedot avatar zipuragi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gnuboard5's Issues

kisa 취약점 제보 xss 필터 적용부분 문의

/bbs/write.php 238 line에 아래 코드가 있는데
html_purifier 함수를 왜 

" if ( $w == 'u' && (! $is_member || ! $is_admin || $write['mb_id'] !== $member['mb_id']) ) "

이조건에서만 실행 시키는건지 궁금합니다 해당 조건이면 비회원 수정시만 동작하게 되는건가요?

if ( $w == 'u' && (! $is_member || ! $is_admin || $write['mb_id'] !== $member['mb_id']) ){
// kisa 취약점 제보 xss 필터 적용
$content = get_text(html_purifier($write['wr_content']), 0);
}

태그 지원

요즘 대세가 태그를 지원하고 있습니다.

그누보드 순정에서 지원을 안하다 보니, 각자가 만들어서 사용을 하고 있는 것 같습니다.

별도로 만들어 볼까하다가, 이번 기회에 그누보드 순정에서도 태그를 지원했으면 합니다.

게시판별로 에디터를 따로 사용가능하게 부탁드립니다.

마크다운 에디터를 적용시켜 볼려고 했는데, 아직 호환성에 문제가 있습니다.

그래서 각 게시판별로 에디터를 설정할수 있게 부탁드립니다.

단순하게 생각해 보면 bo_use_dhtml_editor를 예를 들면..
0: 사용안함.
1: cheditor
2: smarteditor 식으로.

순서는 plugin/editor에서 읽어 오는 순서로..

class.phpmailer.php > public $SMTPAutoTLS = true; 설정

메일발송을 통해 아래와 같은 오류가 나오는 경우가 있습니다.
Warning: stream_socket_enable_crypto(): Peer certificate CN=server_name.domain.com' did not match expected CN=127.0.0.1' in /path/public_html/www/plugin/PHPMailer/class.smtp.php on line 368

위와 같은 현상이 발생시
plugin/PHPMailer/class.phpmailer.php 260라인
public $SMTPAutoTLS = true;
를 false로 변경하면 정상적으로 작동하더군요.

이 부분을 범용으로 변경하여 사용하는 것이 좋은 방법인지 몰라 이슈로 제안드립니다.

관리자 : 쇼핑몰관리 > 상품관리

if (!$it['ca_id'])
{
$sql = " select ca_id from {$g5['g5_shop_category_table']} order by ca_order, ca_id limit 1 ";
$row = sql_fetch($sql);
if (! (isset($row['ca_id']) && $row['ca_id']))
alert("등록된 분류가 없습니다. 우선 분류를 등록하여 주십시오.", './categorylist.php');
$it['ca_id'] = $row['ca_id'];
}

분류관리에서 등록한 분류가 없는 경우,
경고메세지 제공 및 분류관리 페이지로 이동 처리가 되지 않고 있습니다.

브랜치 bugfix

update from 5.3 to 5.4

Hello

How to upgrade 5.3 to 5.4? Can i do this by just replacing files or there is db update needed and if yes, then how? Is there update tool perhaps?

i am very thankful for any help

bbs/move_update.php > HOOK 추가 건의

에디터 업로드 이미지를 파일 복사,이동시 첨부파일처럼 함께 복사, 이동 되도록 작업중입니다.
코어를 수정하지 않고 할 수 있는 방법이 없더군요.
5.4부터 HOOK 기능이 생겨 유용하게 사용하고 있는데 기왕이면 그누보드의 여러 곳에서 HOOK의 사용이 가능하면 좋겠습니다. (아마 지금도 여러 곳에서 조금씩 더 늘어나겠지만요..)

현재의 코어 구조는 파일의 복사(이동)시 여러 게시판으로 복사(이동)하는 경우나 원글에 코멘트가 있는 경우 타겟되는 게시판의 wr_id를 가져올 수가 없습니다.
move_update.php의 run_event('bbs_move_update', $bo_table, $chk_bo_table, $wr_id_list, $opener_href);
HOOK 이전에 처리하게 되어 있는 구조라서 그렇지요.
현재의 파일 구조라면 197라인 또는 191라인 위로 HOOK이 있으면 while문이 닫히기 전에 전처리로 가능할 것 같습니다.

업데이트를 준비하면서 한 번 참고해주시면 좋겠습니다.

1:1 문의 파일 첨부 오류, 작은별님 문의

https://sir.kr/cm_bug/11500

===============================================

https://sir.kr/qa/431931

QA 하다가 발견한 건데요.

1:1 문의 게시판에 신규 글 등록 시 파일 첨부는 지원합니다.

근데 답변 모드일 때는 파일 첨부가 기본적으로 나타나지 않죠.

그런데 답변 등록 후 답변을 수정하면 또 파일 첨부란이 뜨고 있네요.

답변 수정 모드일 때 첨부하면 파일은 등록되지만 출력되는 곳도 없고요.

카카오톡 웹페이지 링크 후 그누보드5 제작 홈페이지에서 한글 파일명 다운로드 문제

카카오톡 웹페이지 링크 후
그누보드5 제작 홈페이지의 게시판에서 한글 파일명 다운로드 시 URL 인코딩 파일명 그대로
다운로드되는 문제가 있습니다.

카카오톡 브라우저는 urlencode 메소드로 변환된 한글을 그대로 파일명으로 다운로드 시킴.

해당 브라우저의 유저 에이전트 데이터를 확인하니 아래와 같았습니다.
Mozilla/5.0 (Linux; Android 6.0.1; SM-N920S Build/MMB29K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/73.0.3683.90 Mobile Safari/537.36;KAKAOTALK 1908210

"KAKAOTALK"를 매칭해서 url encode를 안 하면 될 것으로 판단되어 아래와 같이 download.php 파일을 수정했습니다.

다음 그누보드5 버전 업데이트에 검토 후 반영 부탁드립니다.

파일 경로: www/bbs/download.php:88

if (preg_match("/KAKAOTALK/i", $_SERVER['HTTP_USER_AGENT'])){
    $original = $file['bf_source'];
} else {
    $original = urlencode($file['bf_source']);
}

탈퇴회원 버그.

회원탈퇴후 삭제일 N 일 후 자동 삭제 < 부분을 만약 1일로 설정하면

오늘 탈퇴하면 내일 관리자 로그인시 디비에서 삭제하는 문구가 실행되는데요.

db_table.optimize.php에서 member_delete 함수가 실행되는데
이때 member_delete 함수 내부에서 mb_leave_date 가 현재 날짜로 덮어지는 바람에 그 다음날에도 또 실행되고 또 덮어지고 하는 작업 반복되는거같습니다.

그리고 member_delete 에 회원이 이름은 삭제 하지 않던데 이도 삭제해야될꺼같습니다. ( 개인정보문제?)

또.. 30일로 지정하는 순간 30일이 넘은 유저분들이 갑자기 삭제처리 진행되면서
쪽지부분 많은 삭제하느라 시간이 걸리는거같더라구요..
그러면 관리자 입장에서는 504 time-out 가 나서 관리자분이 계속 새로고침+재로그인 시도하는 과정에서
db_table.optimize.php 가 여러번 도는바람에 부하가 좀 더 오래갔었고
탈퇴처리진행되는 유저분들의 mb_memo 에는
20150617 삭제함
20150617 삭제함
20150617 삭제함
20150617 삭제함
20150517 삭제함
20150416 삭제함
20150416 삭제함
20150416 삭제함
20150416 삭제함
20111006 삭제함

요렇게 기록되버리네요

수정부탁드립니다!

영카트 hook 추가 부탁드려도 될까요?

게시판 쪽의 훅은 많이 추가되어서 다양하게 활용하고 있습니다.
근데 영카트 쪽이 조금 부족한듯 합니다.

주문 등록,
관리자 주문 주문 변경등.
추가 부탁 드립니다.

항상 감사히 잘 사용하고 있습니다.

cache_time 에서 Fatal error: Unsupported operand types 나올 때

$caches = g5_get_cache($cache_file_name, $time_unit * $cache_time);

$caches = g5_get_cache($cache_file_name, $time_unit * $cache_time);
g5_set_cache($cache_file_name, $caches, (int)$time_unit * (int)$cache_time);

101 라인도 마찬가지입니다.

이렇게 처리하니 php 8 버전에서 에러 메세지 없이 작동이 잘 되는데 이것이 정상인가요? 아니면 제 php 설정 상의 문제인가요?

Open redirect 취약점 및 redirect 개선 방안 제시

if (preg_match('/^https?:\/\//i', $url) || $p['scheme'] || $p['host']) {

Open redirect 취약점이 재발 할 수 있습니다.
선생님께서는 https:// http:// 로 시작하는 경우, domain이 있는 것으로 판단하셨습니다.
하지만 // 으로 시작하는 경우에도 현재 url의 프로토콜에 따라 페이지 이동이 가능하므로 // 로 시작하는 경우에도 차단이 필요해보입니다.

예시 : http://localhost/bbs/logout.php?url=//hacked.bughunting.net

mysql이 업데이트 되면서 PASSWORD 함수 삭제됨.

여기에 따르면
PASSWORD()
This function was removed in MySQL 8.0.11.
라고 하네요.

처음 설치할 때 ./gnuboard5/install/install_db.php에서 발생하구요.
sha2('$비밀번호',512);정도로 대체 가능할 것 같습니다.

로그인에도 바꿔야 할 것 같습니다.(로그인은 어떤 파일에서 처리하는지 모르겠네요...)

Thanks guys!

This piece of fine software makes me feel like I'm back in the 1990s. It's like using my old Pentium Pro and Windows 95! When will you add support for ActiveX?

몇가지 누락된 스킨관련

안녕하세요, 수고 많으십니다.
그누보드5를 기반으로 작업 중 누락된 테마/스킨 관련기능이 보여서 이슈등록 합니다.

1. 인증메일 재전송/변경 페이지

  • 이메일 인증이 필요한 사이트에서, 회원가입 후 인증미완료 상태에서 로그인 시도 시 인증메일 주소를 변경할 수 있는 UI를 제공하는 페이지
  • /bbs/register_email.php 에서 테마의 스킨을 로드하지 않음으로써, 디자인 변경등을 위해서는 직접 core 코드를 수정해야 하는 문제 발생
  • /bbs/register_email.php 라인 21 즈음에 다음과 같은 코드 추가 제안
...
$skin_file = $member_skin_path.'/register_email.php';
if( file_exists($skin_file) ) {
    include_once($skin_file);
    include_once('./_tail.php');
    return;
}
...

2. 관리자 > 게시물 이동/복사 팝업 페이지

  • 관리자가 게시물을 이동/복사 할 수 있는 UI를 제공하는 페이지
  • /bbs/move.php 에서 테마의 스킨을 로드하지 않음으로써, 디자인 변경등을 위해서는 직접 core 코드를 수정해야 하는 문제 발생
  • 마찬가지로, 테마의 board 스킨의 move.php 등을 로드하는 코드가 추가되어야 할 것으로 예상

이상 참고 부탁드립니다.
감사합니다.

저장엔진이 MyISAM으로 하드코딩되어 있어서 불편합니다.

사이트를 운영하다가 규모가 어느 정도 커지면 단독서버나 클라우드서버로 옮기고 DB도 튜닝을 하게 됩니다. 동접수가 많은 사이트는 테이블 저장엔진을 InnoDB로 변경하는 것으로 성능과 안정성을 개선할 수 있는데요... 서버단에서 일괄 변환해 놓아도 나중에 게시판을 추가하면 또다시 MyISAM 저장엔진으로 생성됩니다.

common.lib.php에서 소스를 수정하면 되지만, 업데이트시 매번 다시 바꿔줘야 하기 때문에 가능하면 소스를 수정할 필요가 없는 방향으로 개선되면 좋겠습니다.

config.php에서 상수를 하나 정의하고, get_table_define() 등의 함수에서 CREATE TABLE 쿼리를 작성할 때 이 상수를 참조하도록 하면 편리할 것 같습니다. 기본값은 물론 MyISAM으로 해두고요.

아니면 아예 ENGINE=MyISAM 구문을 빼버리고, DB에서 지정한 default_storage_engine의 값을 따르도록 하는 것도 괜찮겠습니다.

/bbs/member_confirm.php 에서 url 파라미터에 검증 미스로 인해 Open Redirect 취약점 발생

gnuboard5/lib/common.lib.php

Lines 3282 to 3343 in de9ba8d

function check_url_host($url, $msg='', $return_url=G5_URL, $is_redirect=false)
{
if(!$msg)
$msg = 'url에 타 도메인을 지정할 수 없습니다.';
$p = @parse_url($url);
$host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']);
$is_host_check = false;
// url을 urlencode 를 2번이상하면 parse_url 에서 scheme와 host 값을 가져올수 없는 취약점이 존재함
if ( $is_redirect && !isset($p['host']) && urldecode($url) != $url ){
$i = 0;
while($i <= 3){
$url = urldecode($url);
if( urldecode($url) == $url ) break;
$i++;
}
if( urldecode($url) == $url ){
$p = @parse_url($url);
} else {
$is_host_check = true;
}
}
if(stripos($url, 'http:') !== false) {
if(!isset($p['scheme']) || !$p['scheme'] || !isset($p['host']) || !$p['host'])
alert('url 정보가 올바르지 않습니다.', $return_url);
}
//php 5.6.29 이하 버전에서는 parse_url 버그가 존재함
//php 7.0.1 ~ 7.0.5 버전에서는 parse_url 버그가 존재함
if ( $is_redirect && (isset($p['host']) && $p['host']) ) {
$bool_ch = false;
foreach( array('user','host') as $key) {
if ( isset( $p[ $key ] ) && strpbrk( $p[ $key ], ':/?#@' ) ) {
$bool_ch = true;
}
}
if( $bool_ch ){
$regex = '/https?\:\/\/'.$host.'/i';
if( ! preg_match($regex, $url) ){
$is_host_check = true;
}
}
}
if ((isset($p['scheme']) && $p['scheme']) || (isset($p['host']) && $p['host']) || $is_host_check) {
//if ($p['host'].(isset($p['port']) ? ':'.$p['port'] : '') != $_SERVER['HTTP_HOST']) {
if ( ($p['host'] != $host) || $is_host_check ) {
echo '<script>'.PHP_EOL;
echo 'alert("url에 타 도메인을 지정할 수 없습니다.");'.PHP_EOL;
echo 'document.location.href = "'.$return_url.'";'.PHP_EOL;
echo '</script>'.PHP_EOL;
echo '<noscript>'.PHP_EOL;
echo '<p>'.$msg.'</p>'.PHP_EOL;
echo '<p><a href="'.$return_url.'">돌아가기</a></p>'.PHP_EOL;
echo '</noscript>'.PHP_EOL;
exit;
}
}
}

gnuboard5 에서 로그인 세션을 가지고 있는 경우 /bbs/member_confirm.php 에서 ?url= 파라미터에

아래와 같은 poc로 요청을 하면 www.google.com 으로 이동하게 됩니다.

대신 //@localhost:80이 붙어 not found가 뜨지만 먼저 원하는 URL로 이동할 수 있다는 점을 이용하여 쉽게 HTTP 상태 코드 200 처리를 하여 Open Redirect 취약점을 발생시킬 수 있습니다.

POC : http://gnuboard_url/bbs/member_confirm.php?url=https://www.google.com\@localhost:80

http://gnuboard_url/bbs/member_confirm.php?url=[http/https]://[이동하고 싶은 URL]\@localhost:80

혹시 jquery 버전 올리실 계획이 있으신가요?

gnuboard 쓰면 기본적으로 jquery 기반이 되어 있어서 따로 jquery 버전을 올리지 않고 쓰고 있긴 한데요.

bootstrap 라이브러리의 경우 최신 버전 기능을 쓸려면 jquery 1.9.x 대 이상을 써야 하는데.

gnuboard 쪽은 기본적으로 1.8.x 를 쓰고 있어서 사용할 수가 없는 상태네요..

그래서 혹시 계획이 있는지 궁금합니다.

변수 오타로 인한 Reflected XSS 취약점 발생

<input type="text" name="bo_table" value="<?php echo $board['bo_table'] ?>" id="bo_table" <?php echo $required ?> <?php echo $readonly ?> class="frm_input <?php echo $reaonly ?> <?php echo $required ?> <?php echo $required_valid ?>" maxlength="20">

/adm/board_form.php191번째 라인에서 $readonly 변수를 $reaonly로 접근하여 오류가 생깁니다. 이 점을 이용해서 해커는 XSS 공격을 할 수 있습니다. 아래의 경로에 접속하면 Reflected XSS가 실행됩니다.

Proof of Concept : http://GNUBOARD_URL/adm/board_form.php?w=3&reaonly=asdf"><img+src=x+onerror+=alert(document.domain)>

2020-12-30 16;40;19

5.4에서 댓글 이벤트에 코멘트 아이디도 같이 보내줬으면 합니다.

write_comment_update.php에서 run_event시에 wr_id랑 comment_id도 같이 추가 되었으면 합니다.
comment_update_after 이벤트 받아서 어떤 코멘트가 작성되었는지 필요할듯 합니다.
검토 부탁드립니다.
항상 감사합니다. ^^


기존

run_event('comment_update_after', $board, $wr_id, $w, $qstr, $redirect_url);


수정

run_event('comment_update_after', $board, $wr_id,$comment_id, $w, $qstr, $redirect_url);

그누보드의 php 최저버전 기준 올리지는 않나요?

지금 최저지원 버전이php 5.2 기준인데

언제까지 구버전을 가지고 갈껀가요? 계획은 있는지요
cms가 계속 지원하니까 아직도 php 5.2버전으로 신규플젝하는곳 있고요

최소 5.3~5,4으로 올려야하는건 아닌지요

그누 6가 나오면 7.0이상이라던지...

비밀댓글 열람 기준

비밀댓글 열람기준이 이상합니다.

현재는 글 작성자만 글의 모든 비밀댓글을 열람할 수 있도록 되어있습니다.

댓글에 대해 비밀대댓글을 작성하는 경우,
보통 댓글 작성자만 볼 수 있게 할 의도록 비밀대댓글을 작성할텐데,
정작 보아야할 댓글 작성자에게는 댓글이 보이지 않고,
글 작성자만 비밀대댓글을 볼 수 있게 됩니다.

다음과 같이 댓글이 작성되어있다고 가정해봅시다.

  • 원글, 일반, 사용자1
    • 댓글1, 비밀, 사용자2
    • 댓글2, 일반, 사용자2
      • 댓글2-1, 일반, 사용자3
        • 댓글2-1-1, 비밀, 사용자2
      • 댓글2-2, 비밀, 사용자3
      • 댓글2-3, 일반, 사용자3
      • 댓글2-4, 비밀, 사용자1
    • 댓글3, 일반, 사용자3
    • 댓글4, 비밀, 사용자3

이런 구조로 댓글이 작성 되어있다고 했을 때,
사용자1가 볼 수 있는 댓글은 1, 2, 2-1, 2-3, 2-4, 3, 4
사용자2가 볼 수 있는 댓글은 1, 2, 2-1, 2-1-1, 2-2, 2-3, 2-4, 3
사용자3이 볼 수 있는 댓글은 2, 2-1, 2-1-1, 2-2, 2-3, 3, 4
이 되어야할 것 같습니다.

Config And Defaults Table

Why config and shop_default table is saved using vertically.
Why just do not add key,value Table with multiple records?

get_device_change_url() url에 query에 배열이 있을시 에러 발생

get_device_change_url() url에 query에 배열이 있을시 에러 발생
발생경로

  • domain.com/index.php? 에 get_device_change_url()을 사용하는 부분 있다고 가정
  • domain.com/index.php?filter[]=1&filter[]=2 로 문서 요청

원본
if($_SERVER['QUERY_STRING']) {
foreach($_GET as $key=>$val) {
if($key == 'device')
continue;
$key = strip_tags($key);
$val = strip_tags($val);
if($key && $val)
$q[$key] = $val;
}

수정제안
if($_SERVER['QUERY_STRING']) {
foreach($_GET as $key=>$val) {
if($key == 'device')
continue;

        $key = strip_tags($key);

        if(is_array($val)) {
        	foreach ($val as &$element) {
        		$element = strip_tags($element);
            }
        } else if ($key && $val) {
            $val = strip_tags($val);
        }

        if($key && $val)
	        $q[$key] = $val;
    }
}

사용 및 설치 오류

어느 순간부터 그누보드 5.3.1.7에서 게시판 추가/수정 및 일부 게시판의 글 쓰기가 안 되는 것을 발견했습니다.
데이터베이스를 확인해보니 g5_write_<게시판id> 테이블은 생성되어지는데 목록 테이블 g5_board에 등록이 되지 않습니다.

그래서 데이터베이스를 새로 만들고 새로 설치를 했더니...

그누보드5 설치가 시작되었습니다.
전체 테이블 생성 완료
insert into g5_config set cf_title = '그누보드5', cf_theme = 'basic', cf_admin = 'admin', cf_admin_email = '[email protected]', cf_admin_email_name = '그누보드5', cf_use_point = '1', cf_use_copy_log = '1', cf_login_point = '100', cf_memo_send_point = '500', cf_cut_name = '15', cf_nick_modify = '60', cf_new_skin = 'basic', cf_new_rows = '15', cf_search_skin = 'basic', cf_connect_skin = 'basic',
(중간생략)
cf_member_img_height = '60', cf_login_minutes = '10', cf_image_extension = 'gif|jpg|jpeg|png', cf_flash_extension = 'swf', cf_movie_extension = 'asx|asf|wmv|wma|mpg|mpeg|mov|avi|mp3', cf_formmail_is_member = '1', cf_page_rows = '15', cf_mobile_page_rows = '15', cf_cert_limit = '2', cf_stipulation = '해당 홈페이지에 맞는 회원가입약관을 입력합니다.', cf_privacy = '해당 홈페이지에 맞는 개인정보처리방침을 입력합니다.'

1364 : Field 'cf_add_script' doesn't have a default value

error file : /install/install_db.php

이렇게 뜹니다.
오류가 난 파일로 찾아가서 쿼리문을 mysql에 그대로 쳐도 결과는 똑같습니다.
오류가 난 cf_add_script 필드를 임의로 초기화해주니 또 cf_add_meta에서 똑같은 오류가 납니다.

install/gnuboard5.sql 파일에 데이테베이스 구조가 나와있는 것 같은데,
그 파일이랑 충돌이 있다고 생각합니다.

이 이유로 지금 그누보드5 못 돌리고 있습니다.
빨리 다음 버전에서 해결해 주시기 바랍니다.

Trying to get in touch regarding a security issue

Hey there!

I belong to an open source security research community, and a member (@wjddnjs33) has found an issue, but doesn’t know the best way to disclose it.

If not a hassle, might you kindly add a SECURITY.md file with an email, or another contact method? GitHub recommends this best practice to ensure security issues are responsibly disclosed, and it would serve as a simple instruction for security researchers in the future.

Thank you for your consideration, and I look forward to hearing from you!

(cc @huntr-helper)

로그인 횟수 제한 제안

요며칠 그누보드로 운영하는 사이트에 계정 탈취 목적인지
계정에 로그인 시도가 계속 이루워지고있네요.
xe 이용할댄 기본으로 로그인횟수 제한이라는 기능이 있어 관리자 페이지에서
설정해놓은 횟수 초과하면 일정시간 로그인 제한 또는 해당 ip 차단이 되는데
그누보드는 그런기능이 없더군요.
혹시나 이부분에 대해 고려좀 해주시기 바랍니다.

clean_relative_paths function improvement

Existing function

function clean_relative_paths($path){
    $path_len = strlen($path);
    
    $i = 0;
    while($i <= $path_len){
        $result = str_replace('../', '', str_replace('\\', '/', $path));

        if((string)$result === (string)$path) break;

        $path = $result;
        $i++;
    }

    return $path;
}

while doesn't mean anything.

NEW

function clean_relative_paths($path){
    return str_replace('../', '', str_replace('\\', '/', $path));
}

wr_option 다양하게 지원 가능하게

wr_option이 현재
html1, html2, secret, mail 4가지 옵션으로 되어 있는데..
여기에 일반 Text 나 Markdown text를 추가하고 싶은데..

secret+일반 Text(마크다운텍스트) 조합이 안되니..

이것도 미래에 맞게 wr_option_content 와 wr_option_type 식으로 나누던지
아니면 비트로
0x0100 : secret 0x0200: mail
0x01: html1, 0x02: html2, 0x04: text, 0x08:md text 식으로..

혹시 관리자 페이지에서 게시판 사용하는 계획이 있나요?

먼저 그누보드 만들어 주셔서 감사합니다.

근래 사이트를 제작할 일이 있어서 그누보드를 처음부터 다시 설치해서 하는데.

이걸 할 때마다 어드민 관련된 사이트를 다시 만들어야하나 고민이 많았습니다.

일단 그누보드 관리자 페이지가 맘에 딱 드는 패턴이라 여기에 메뉴추가 하고 게시판 까지 있으면 좋겠다는 생각이 들었습니다.

관리자 페이지에서 게시판 관리 이외에 실제 게시판 기능을 지원해주면 좋지 않을까 합니다.

그러면 관리자 페이지를 위해서 사이트를 다시 재구성을 안해도 될 것 같아요.

https://gist.github.com/easylogic/fc4e9ce2b60a8ab50ab9

그래서 한번 게시판을 써보자는 마음으로 했습니다. 일단 게시판 기능은 붙였는데요.

너무 부자연스러운 것 같네요.

기존 게시판 코어가 바뀔 때 마다 계속 수정하면서 써야해서 말이죠.
별로 좋은 방법은 아닌 것 같습니다.

좀 더 쉽게 구성할 수 있는 방법이 없을까요?

그룹이 인설트 되지 않아서 확인해보니..

어디다 글써야할지 몰라서 여기가 맞는지 모르겠지만;

마리나디비 5.5
sql_mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES" 사용중인데,
/adm/boardgroup_form_update.php
43 line
$sql_common .= ", gr_use_access = '' "; 를
$sql_common .= ", gr_use_access = 0 "; 로 수정해주세요.

data type = tinyint라 인설트가 안되는듯요.

sql모드를 바꾸면 되겠지만, 0이 맞는거 같아서요.

코드에 대한 문서는 따로 존재하지 않나요?

코드에 대한 문서는 따로 존재하지 않나요?
소스코드와 주석만이 존재할까요?
레퍼런스가 있을까요?

공식페이지에서 메뉴얼이나 다른 자료들도 확인을 해 보았는데, 아키텍처나 코드구조 같은건 없고 그냥 사용방법만 나와있었습니다.
그냥 코드를 보면서 구조를 파악해야할까요?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.