Commit Graph
66 Commits
Author SHA1 Message Date
whitedot 873839add7 security: KVE-2026-2329 XHTML 등 실행형 첨부를 저장 전에 차단
게시판·1:1문의·폼메일·쇼핑몰 로고의 PHP 업로드 검사에서 위험 확장자를 거부한다. 대소문자와 다중 확장자 등 파일명 변형을 검사하고 클라이언트 검사도 일치시킨다.

검증: 위험 파일 및 정상 이미지·문서 파일명 격리 검증, 저장 전 차단 검증, PHP·JavaScript 문법 검사 통과.
2026-09-09 07:58:16 +00:00
whitedot 65875b7f35 security: KVE-2026-2330 비회원 게시물 수정 인증과 토큰 발급 검증 강화
기존 비밀번호 확인 이력을 게시판·게시물·비밀번호에 결합하고 저장 전 검증한다. 인증은 30분 후 만료되며 저장 후 폐기한다. 일반 쓰기 토큰과 답변 세션으로 수정 인증을 대체할 수 없도록 한다.

1:1문의 토큰 발급을 로그인 회원의 해당 용도로 제한하고 게시판 토큰의 요청 경로와 대상을 확인한다. 최고관리자의 그누보드4 자료 이전은 유지한다.

검증: 비인증 수정 차단, 정상 비밀번호 변경 및 인증 폐기, 토큰 발급 엔드포인트 격리 검증과 PHP 문법 검사 통과.
2026-09-09 07:58:16 +00:00
whitedot 639b788ad1 fix: 게시물 제목을 UTF-8 문자 단위로 제한해 저장 오류 방지
제목의 255바이트 절단을 cut_str의 255자 제한으로 변경한다. 말줄임표를 붙이지 않아 허용 길이 이내의 한글 제목을 온전히 보존한다.

검증: 제보 제목과 한글·ASCII·혼합 문자열의 경계값, mbstring 유무, utf8·utf8mb4 임시 DB 저장 및 조회, PHP 문법 검사 통과.
2026-09-09 07:58:16 +00:00
whitedot 0242e8f1a3 security: SVG 및 SVGZ 파일 업로드 차단
게시판, 1:1문의, 폼메일 및 쇼핑몰 설정의 클라이언트와 서버 검증에서 SVG 계열 파일 업로드를 거부한다.
2026-09-01 11:40:15 +09:00
thisgun 10c6c18857 Fix JavaScript alert string escaping 2026-06-01 10:26:44 +00:00
thisgun ff9a7534ed Restore data htaccess on admin and write upload 2026-05-29 07:22:08 +00:00
thisgunandClaude Opus 4.6 c38de4c94b [security]KVE-2026-0701 .shtml 확장자 필터 누락으로 인한 RCE 수정
- bbs/write_update.php, bbs/qawrite_update.php: 업로드 블랙리스트에 shtml|shtm 추가
- install/install_db.php, data/.htaccess: FilesMatch 정규식에 [Ss]? 추가하여 .shtml 차단

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 03:39:31 +00:00
thisgun 31ef78e916 [perf]strstr() 불린 검사를 strpos() !== false 로 교체
strstr()은 일치하는 부분 문자열 전체를 반환하므로 존재 여부만 체크할
때는 메모리 할당이 낭비됨. strpos()는 위치(int) 또는 false만 반환하여
메모리 할당 없이 더 빠르게 동일 동작 수행.

적용 파일 (19개, 약 25곳):
- lib/common.lib.php: wr_option html1/html2/secret 검사 3곳
- lib/shop.lib.php: de_taxsave_types 검사 2곳
- lib/latest.lib.php: wr_option secret 검사 1곳
- lib/thumbnail.lib.php: wr_option secret 검사 1곳
- lib/URI/uri.class.php: URI 확장자 검사 1곳
- bbs/view.php: subject/wr_option/content 검사 4곳
- bbs/view_comment.php: wr_option secret 검사 1곳
- bbs/search.php: wr_option/sfl 검사 3곳
- bbs/rss.php: wr_option html 검사 1곳
- bbs/write_update.php: html1/html2 검사 2곳
- bbs/move_update.php: wr_option html 검사 1곳
- adm/admin.lib.php: auth 권한 검사 1곳
- adm/admin.head.php: 메뉴 권한 검사 1곳
- adm/session_file_delete.php: sess_ prefix 검사 1곳
- adm/point_list.php, adm/auth_list.php: sfl mb_id 검사 2곳
- adm/sms_admin/_common.php: install.php 검사 1곳
- adm/shop_admin/configform.php: de_taxsave_types 검사 3곳
- head.sub.php: admin dir 검사 1곳

규칙:
  strstr($a, $b)       → strpos($a, $b) !== false
  !strstr($a, $b)      → strpos($a, $b) === false

제외:
- theme/, skin/, plugin/ (사용자 커스터마이징/서드파티)
- strstr() 반환값을 실제로 사용하는 케이스 (예: lib/common.lib.php:4135
  if( \$freg = strstr(\$ori_params, '#') ), extend/gif2mp4.extend.php)
2026-04-16 02:29:32 +00:00
thisgun a612e69d3e [perf]for 루프 조건의 count() 호출을 루프 밖으로 추출 (핵심 파일)
for ($i=0; $i<count(\$arr); $i++) 패턴은 매 반복마다 count()를 호출하여
불필요한 CPU 오버헤드를 발생시킴. 루프 전에 한 번만 count()를 계산하여
변수에 저장하는 고전적인 최적화.

적용 파일 (19개, 41곳):
- lib/common.lib.php (8)
- common.php (2)
- lib/shop.lib.php (5)
- lib/naverpay.lib.php (1)
- lib/thumbnail.lib.php (2)
- bbs/list.php (1), bbs/search.php (4), bbs/qalist.php (1), bbs/qawrite.php (1)
- bbs/ajax.filter.php (1), bbs/write_update.php (4)
- bbs/write_comment_update.php (1), bbs/memo_form_update.php (2)
- bbs/new_delete.php (1), bbs/move_update.php (4)
- shop/search.php (1), shop/orderform.sub.php (1)
- mobile/shop/search.php (1), mobile/shop/orderform.sub.php (1)

부수 효과:
- lib/shop.lib.php line 2115: 동일 루프 내 strstr($dlcomp, $company)를
  strpos($dlcomp, $company) !== false 로 변경 (strstr 최적화의 일부)

제외:
- theme/, skin/, plugin/ (사용자 커스터마이징/서드파티)
- lib/PHPExcel/ (서드파티 라이브러리)
- adm/ 및 shop/mail/ (관리자/드문 경로, 별도 후속 작업 여지)
- 주석 처리된 코드 (bbs/delete.php:127, bbs/delete_all.php:143)
2026-04-16 02:26:59 +00:00
thisgun ad99ea7673 [KVE-2026-0599]그누보드5 XSS 취약점 수정 2026-04-06 06:27:09 +00:00
thisgun 60d37b853b [KVE-2026-0553]그누보드 SQL Injection 취약점 수정 2026-03-30 09:50:38 +00:00
chym1217 7e8eff5395 팝빌 알림톡 제거 완료
- 광고성 및 회원관리파일(친구톡 코드만 제거) 제외
2025-09-19 17:53:50 +09:00
chym1217 66f6a75a10 팝빌 알림톡 기능 추가 2025-09-04 12:37:12 +09:00
thisgun 62ff45b31f php warning 메시지 코드 수정 2025-03-31 15:36:32 +09:00
thisgun 8893b112fa 일부 특수문자가 mysql charset 이 uft8 인 경우 기록이 안되는 현상 수정 2024-11-21 11:58:55 +09:00
thisgun bf6678e036 글쓰기 sql query 에 별칭 as 추가 #309 2024-04-03 09:44:37 +09:00
thisgun 16051b3049 비회원이 비밀글을 작성할 경우 패스워드를 묻는 오류 문제 수정 2023-11-10 12:47:10 +09:00
kkigomi 8cd1df0f43 불필요한 주석 제거 2023-08-31 21:18:41 +09:00
thisgun 41d48891f4 wr_num 필드 값이 동시성 문제로 겹치는 경우 답변글에 대한 권한이 잘못 주어지는 등의 문제 다시 수정 #265 2023-08-17 14:39:05 +09:00
thisgun 876534a440 wr_num 필드 값이 동시성 문제로 겹치는 경우 답변글에 대한 권한이 잘못 주어지는 등의 문제 #265 2023-08-16 13:01:05 +09:00
thisgun 238f8c042c 불필요한 코드 수정 및 불필요한 파일 삭제 2022-05-25 19:44:00 +09:00
kagla 13bc72def7 ip2long으로 변환된 REMOTE_ADDR을 유추할수 없도록 md5(sha1(REMOTE_ADDR))로 처리함 (kjsman님,220418) 2022-04-18 11:47:22 +09:00
kagla d79c3be7ba SQL 구문 오류 해결 2022-03-16 16:07:13 +09:00
kagla 6dc462d784 (KVE-2021-0849) 확장자 .phar 파일 업로드 취약점 수정 2021-10-15 16:04:17 +09:00
kagla 7dea8e6866 PHP8 에서 발생하는 오류 수정 2021-09-15 01:14:45 +00:00
kagla 178886c87a webp 이미지를 업로드 할 수 있도록 수정 중 2021-06-22 16:07:02 +09:00
thisgun 27e9af5e42 php8.0 버전 호환 코드 적용 및 PHP 끝 태그 삭제 일괄적용 2021-01-04 15:39:15 +09:00
thisgun 426e4e2819 PHP Warning count 경고문 코드 수정 및 기타 코드 수정 2020-06-04 17:21:40 +09:00
thisgun e221783c20 잘못된 표기 또는 문법 수정 2020-04-17 13:48:55 +09:00
thisgun 22aad37bfb 5.4 버전 내용 적용 2019-12-02 10:22:12 +09:00
thisgun f7ac06d7d4 5.3 버전 내용 적용 2018-03-30 17:40:37 +09:00
thisgun 52f6b39edc 공지가 풀리는 경우 코드 오류 수정 및 메모 카운트 코드 오류 수정 2018-03-20 15:56:24 +09:00
thisgun 06ad4e534a 그누보드 영카트 다중 취약점(17-1029, 17-1047) 수정 2018-03-13 16:11:52 +09:00
thisgun 9e8f75e8fa 회원이 쓴 공지글을 수정할 경우 공지가 풀리는 오류 수정 2018-02-26 09:04:15 +09:00
thisgun 66358414f2 pht 파일 업로드 취약점 수정 adm1nkyj(김용진, http://adm1nkyj.kr) 님 제보 2017-12-08 11:27:37 +09:00
thisgun 5ba87d9933 글쓰기시 page 중복 소스 삭제 2017-01-18 10:56:01 +09:00
chicpro b69720836b 게시글 CSRF 취약점(16-749 16-750) 수정 2016-10-05 10:34:07 +09:00
chicpro b4a83c1969 게시글 카테고리 체크 수정 2016-05-03 17:31:10 +09:00
chicpro ee35ce9839 파일 업로드 개수 체크 추가 2016-05-03 16:53:52 +09:00
chicpro 3f7068541f 비밀글 등록 버그 수정 2016-04-26 17:56:14 +09:00
chicpro 5111f026e6 게시글 등록 메일 이미지 출력 오류 수정 2016-01-06 09:05:07 +09:00
chicpro 35c2bac898 분류 사용할 때 분류선택 여부 체크 추가 2015-12-14 11:06:14 +09:00
chicpro 7324ab1060 업로드 파일명 코드 변경 2015-11-10 14:26:17 +09:00
chicpro f1c56fe70c MySQLi 지원 추가 2015-10-12 14:12:45 +09:00
chicpro b6d84674f6 비밀번호 체크관련 코드 수정 2015-05-13 16:39:13 +09:00
chicpro fcf518353c wr_link를 이용한 sql injection 대응 코드 추가 2014-10-28 10:15:44 +09:00
chicpro 9ef65f3f25 경고 알림 후 이동 경로 추가 2014-10-27 15:31:25 +09:00
chicpro 78fa0cb41b 파일 업로드 보안 오류 수정 2014-10-27 10:43:46 +09:00
chicpro 4ae4cc2169 wr_link 값에 substr 적용 무시되는 오류 수정 2014-10-27 10:00:15 +09:00
chicpro 50c42776e7 SQL Injection 및 관리자가 게시글 수정때 정보 반영되도록 수정 2014-10-24 11:01:34 +09:00