thisgun
47a3790c57
[perf]bbs/list.php N+1 쿼리 2건을 IN 쿼리로 배치 조회로 전환
...
게시판 목록 페이지에서 발생하던 N+1 쿼리 패턴 2건을 제거:
1. 공지 처리 루프 (line 94~120):
기존에는 bo_notice의 각 wr_id마다 sql_fetch를 따로 호출하여 공지가 N개면
N개의 쿼리가 발생. 유효한 wr_id를 정수화하여 수집한 뒤 단일 IN 쿼리로
일괄 조회하고, id 기반 해시맵으로 원래 순서대로 처리.
2. 검색 결과 2차 조회 (line 199~200):
DISTINCT wr_parent 쿼리로 ID만 받은 뒤, 각 행마다 sql_fetch를 호출하여
검색 결과가 N건이면 추가로 N개의 쿼리가 발생. 단일 IN 쿼리로 모든 부모
글을 일괄 조회 후 $rows_to_process 배열에 원래 순서대로 정렬하여 공통
처리 루프에서 소비. 검색/비검색 분기에서 중복되던 row→list 변환 로직도
공통화.
효과 (공지 5개 + 검색 결과 20건 기준):
기존: 1 DISTINCT + 20 fetch + 5 notice fetch = 26 쿼리
개선: 1 DISTINCT + 1 IN(search) + 1 IN(notice) = 3 쿼리
부수 효과:
- 삭제된 공지/부모글에 대한 에러 처리 개선
(기존은 empty row를 get_list에 넘겨 잠재적 오류, 개선판은 자동 스킵)
- wr_id 정수화로 SQL injection 방지 계층 추가
2026-04-16 02:23:24 +00:00
thisgun
2894c269ea
[security]이메일 인증 페이지 접근 토큰을 HMAC-SHA256으로 강화
2026-04-16 02:21:23 +00:00
thisgun
c00c73465a
[security]비회원 주문/개인결제 조회 uid를 HMAC-SHA256으로 강화
2026-04-16 02:15:29 +00:00
thisgun
3e0e8be6da
[security]쇼핑몰 update 엔드포인트 CSRF 보호 추가
2026-04-16 02:02:26 +00:00
thisgun
92a052fa7a
[perf]html_purifier() 메모리 사용량 최적화
...
한 요청에서 html_purifier()가 N번 호출되면 매번 약 10~15MB의 HTMLPurifier
인스턴스를 새로 생성하여, 게시글 목록처럼 반복 호출되는 페이지에서
수백 MB~GB 단위로 메모리가 낭비되었음.
- HTMLPurifier 인스턴스를 요청 단위로 캐싱 (admin/normal 2개 변형만 유지)
- safeiframe.txt 파일 I/O + 파싱 결과도 요청 단위로 캐싱
- G5_HTMLPURIFIER_NO_CACHE 상수로 캐싱 opt-out 가능
($html 내용에 따라 config를 동적 변경하는 플러그인 호환용)
동작 변경:
- html_purifier_config / html_purifier_safeiframes hook은 캐시 미스 시점에만
실행됨 (요청당 최대 2회). 정적 config를 설정하는 일반적인 hook에는 영향 없음.
- html_purifier_result hook은 매 호출마다 정상 실행됨.
효과 (게시글 목록 30건 + 첨부파일 평균 3개 = 120회 호출 기준):
기존 ~1.8GB → 개선 후 ~15MB
2026-04-16 01:36:59 +00:00
thisgun
4ebdd8ba30
[fix]포인트 사용/환원 함수의 race condition 수정
...
insert_use_point, delete_use_point, delete_expire_point 함수의 SELECT-then-UPDATE
패턴이 동시 호출 시 데이터 무결성을 깰 수 있는 race condition을 가지고 있었음.
같은 회원의 포인트 작업이 동시에 발생하면 PHP 단에서 캐시한 잔여량을 기준으로
판단하여 결과적으로 음수/초과 차감 등 포인트가 꼬이는 현상이 발생.
MyISAM은 트랜잭션과 FOR UPDATE를 지원하지 않으므로, 락 없이 무결성을 보장하는
lock-free atomic UPDATE 패턴으로 재구현:
- 매 단계마다 가장 우선 처리할 행 1개를 SELECT (LIMIT 1)
- WHERE 절에 사전 검증 조건(잔여량/상태)을 포함한 원자적 UPDATE
- get_sql_affected_rows()로 성공/실패 판별, 실패 시 재시도
- max_iter=1000 안전장치로 무한루프 방지
특징:
- 단일 행 차감(가장 흔한 케이스)에서 기존과 동일한 쿼리 수
- GET_LOCK 등 추가 락 없음 → 같은 사용자 동시 요청도 throughput 손실 없음
- MyISAM/InnoDB 모두 호환, MySQL 5.0~8.x 모두 동작
2026-04-16 01:35:45 +00:00
thisgun
4d5c597665
[KVE-2026-0610]그누보드5 자동 로그인 취약점 수정
2026-04-16 01:31:19 +00:00
thisgun
7e65a297bf
[KVE-2026-0608]그누보드5 Race Condition 취약점 수정
...
- bbs/poll_update.php: 설문조사 중복 투표 방지 (FIND_IN_SET을 WHERE에 포함한 원자적 UPDATE)
- bbs/good.php: 추천/비추천 카운터 부풀리기 방지 (INSERT IGNORE 우선 후 카운터 증가)
- lib/common.lib.php: insert_point() 포인트 중복 지급 방지 (MySQL named lock GET_LOCK 사용)
2026-04-16 01:07:17 +00:00
thisgun
ddcc82d89b
.gitignore 에 CLAUDE.local.md 추가
2026-04-16 01:00:28 +00:00
thisgun
ad99ea7673
[KVE-2026-0599]그누보드5 XSS 취약점 수정
2026-04-06 06:27:09 +00:00
thisgun
b3fa6dc127
[KVE-2026-0595]영카트5 SQL Injection 취약점 수정
2026-04-06 06:26:20 +00:00
thisgun
e6780f3b4b
버전 5.6.25 수정
2026-04-06 03:47:15 +00:00
thisgun
bededeaf01
.gitignore에 IDE 및 AI 도구 설정 파일 추가
2026-04-06 03:46:41 +00:00
thisgun and Claude Opus 4.6
73b868a444
Cloudflare IPv4 대역 업데이트: 104.16.0.0/12 → 104.16.0.0/13
...
공식 Cloudflare IP 목록(https://www.cloudflare.com/ips )에 맞게 수정
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-06 03:29:55 +00:00
thisgun
eb249a2aee
Merge branch 'master' of github.com:gnuboard/gnuboard5
2026-04-06 03:21:45 +00:00
thisgun
52590509d5
[KVE-2026-0559]그누보드5 SQL Injection 취약점 수정
2026-04-03 03:59:23 +00:00
thisgun
604cef808e
[보안패치]그누보드 영카트 SQL_injection 취약점 수정
2026-03-31 01:21:11 +00:00
thisgun
82574fd4a8
[KVE-2026-0570]그누보드,영카트 SQL Injection 취약점 수정
2026-03-30 12:01:44 +00:00
thisgun
c3db9b454e
[KVE-2026-0569]그누보드,영카트 SQL Injection 취약점 수정
2026-03-30 11:50:30 +00:00
thisgun
bf19cd8bf5
[KVE-2026-0568]영카트 SQL Injection 취약점 수정
2026-03-30 11:03:16 +00:00
thisgun
b2c0e1af29
[KVE-2026-0554]그누보드,영카트 SQL Injection 취약점 수정
2026-03-30 09:52:41 +00:00
thisgun
60d37b853b
[KVE-2026-0553]그누보드 SQL Injection 취약점 수정
2026-03-30 09:50:38 +00:00
thisgun
919b75a138
[KVE-2026-0340]그누보드_SQL_Injection취약점_수정
2026-03-26 03:38:19 +00:00
thisgun
01fab8136e
git commit -am "[KVE-2026-0330]영카트_SQL_Injection취약점_수정";
2026-03-26 01:32:14 +00:00
thisgun
5054e24631
[KVE-2026-0243]영카트주문시_쿠폰중복사용취약점_수정
2026-03-25 09:18:48 +00:00
thisgun
deff7d2079
warning 메시지 수정
2026-03-25 05:06:29 +00:00
thisgun
5e6b4fa668
[KVE-2026-0242]영카트주문취소시_포인트복구취약점_수정
2026-03-25 04:59:56 +00:00
thisgun
ef1be317e1
버전 5.6.24 수정
2026-02-03 06:25:50 +00:00
thisgun
137d78ff73
영카트 관리자모드 분류출력 개선
2026-02-03 06:24:34 +00:00
thisgun
0ddcda4b0c
toss 모바일결제 포인트 적용시 결제 오류 수정
2026-02-02 09:37:49 +00:00
thisgun
bf27af3925
영카트 shop_is_taxsave 에서 볌수 코드 오타 수정
2026-02-02 07:33:36 +00:00
thisgun
607e15424d
토스결제 비회원결제가 안되는 오류 및 모바일 개인결제 취소과정 코드 수정
2026-02-02 07:18:28 +00:00
thisgun
7c490448ec
메일보내기 발신자 위장 방지 및 암호화 키의 안전성 취약점 수정
2026-01-30 05:00:43 +00:00
thisgun
d775d2255f
[KVE-2026-0029]Stored XSS 취약점 수정
2026-01-27 05:50:34 +00:00
thisgun
b94771de92
썸네일 파일 코드 위치변경
2026-01-27 03:34:20 +00:00
thisgun
b29e16a198
게시판 관리자가 게시판 수정시 자동등록방지 숫자가 틀렸습니다 라고 나오는 오류 수정
2026-01-26 09:40:43 +00:00
thisgun
0e06b4f9ce
영카트5에서 사용자가 현금영수증 발급버튼이 출력되지 않는 오류 수정
2026-01-26 09:33:19 +00:00
thisgun
f2ab751e5f
[KVE-2025-0828]영카트 취약점 수정
2025-11-14 07:30:47 +00:00
thisgun
3432497efe
삼성브라우저PC버전 대응
2025-11-14 02:08:02 +00:00
thisgun
e26fb62f5d
버전 5.6.23 수정
2025-09-22 11:06:20 +09:00
thisgun
887833089b
php warning 메시지 코드 수정
2025-09-22 11:05:39 +09:00
thisgun
1438f8d557
충돌수정
2025-09-22 10:39:44 +09:00
thisgun
1eee11e433
회원관리파일 export 에 권한체크 추가
2025-09-12 14:27:11 +09:00
thisgun
a71192a63b
버전 5.6.22 수정
2025-09-12 13:56:31 +09:00
thisgun
633ff46596
전체검색시 페이징 되지 않는 오류 수정
2025-09-12 10:50:08 +09:00
thisgun
f6a6a5622d
버전 5.6.21 수정
2025-09-08 09:59:55 +09:00
thisgun
63d6f7c43f
Merge branch 'master' of github.com:gnuboard/g5-update
2025-09-08 09:43:00 +09:00
thisgun
fa792efacb
kcaptcha html 에 hook 적용
2025-09-08 09:37:43 +09:00
thisgun
de2502fad5
버전 5.6.17 수정
2025-09-02 18:29:27 +09:00
thisgun
54171e1903
5.6.16 버전에서 게시판 생성이 안되는 오류 수정
2025-09-02 18:27:55 +09:00
thisgun
44172c1d1f
Merge branch 'master' of github.com:gnuboard/g5-update
2025-09-01 11:32:50 +09:00
thisgun
41945c62f8
버전 5.6.16 수정
2025-09-01 11:23:45 +09:00
thisgun
002e43e5fb
XSS 취약점 수정
2025-08-28 13:35:14 +09:00
thisgun
9510aa9cf1
Merge branch 'master' of github.com:gnuboard/g5-update
2025-08-27 18:52:02 +09:00
thisgun
6a3c2b1002
[KVE-2025-0464]영카트 XSS 취약점 수정
2025-08-27 17:58:06 +09:00
thisgun
5da91ab73e
버전 5.6.15 수정
2025-07-31 20:25:39 +09:00
thisgun
d5b541724f
create_hash 함수에 fclose 코드 추가
2025-07-31 20:23:59 +09:00
thisgun
9758007f91
NHN_KCP 네이버페이 간편결제 카드 또는 머니결제로 분리
2025-07-31 20:21:22 +09:00
thisgun
9d5f8e137f
관리자 로그인시 새글 테이블 OPIMIZE 실행시 딜레이 되는 문제 개선2
2025-07-31 17:12:43 +09:00
thisgun
f1da95f055
Open redirect 취약점 수정
2025-07-30 15:03:01 +09:00
thisgun
9602f3c7a7
php warning 메시지 코드 수정
2025-07-21 12:48:53 +09:00
thisgun
d357f5a0a4
Merge branch 'master' of github.com:gnuboard/gnuboard5
2025-07-08 11:41:40 +09:00
thisgun
a9eab8d86a
insert_use_point 함수에 hook 추가 #363
2025-07-08 11:40:47 +09:00
thisgun
9191199ef4
db_table.optimize.php 파일에 hook 추가 #362
2025-07-08 11:16:26 +09:00
thisgun
2556753530
url_auto_link함수에 url_auto_link_before hook 추가 #361
2025-07-08 11:02:34 +09:00
thisgun
57983a6dbc
토스페이먼츠 머트키 확인방법 설명문 수정
2025-07-08 10:45:10 +09:00
thisgun
67415cf8d3
get_uniqid 함수에 hook 추가
2025-06-18 10:53:46 +09:00
thisgun
aa88ff68a1
KG이니시스 IDC 센터코드 검증 추가2
2025-06-12 17:34:53 +09:00
thisgun
07a0245f85
버전 5.6.14 수정
2025-06-12 17:17:33 +09:00
thisgun
d3de613a8c
관리자 로그인시 새글 테이블 OPIMIZE 실행시 딜레이 되는 문제 개선
2025-06-12 17:05:55 +09:00
thisgun
bb1f69e86c
KG이니시스 IDC 센터코드 검증 추가
2025-06-05 16:11:20 +09:00
thisgun
dc4c2a79d9
XSS 취약점 수정 박재형님 제보
2025-06-05 14:12:55 +09:00
thisgun
38451a7d3d
[KVE-2025-0384]XSS lead to RCE 취약점 수정
2025-06-04 17:44:50 +09:00
thisgun
87d11d5c78
변수 초기화 되지 않아 warning 메시지 출려되는 현상 수정
2025-06-04 14:40:18 +09:00
thisgun
c1bbce1114
KG이니시스 가상계좌 에스크로 IP 추가
2025-05-28 11:27:59 +09:00
thisgun
61576d3e87
[KVE-2025-0351]ip 검증 취약점 수정
2025-05-28 10:57:33 +09:00
thisgun
c9100d2e38
NHN_KCP 본인인증 테스트 오류 수정
2025-05-23 12:19:22 +09:00
thisgun
7714153faf
버전 5.6.13 수정
2025-05-15 15:31:41 +09:00
thisgun
654fd7ba68
방문자 기록 sql 문 수정
2025-05-15 15:30:40 +09:00
thisgun
ea9f618de8
KG이니시스 모바일 가상계좌 IP 추가
2025-05-15 15:29:26 +09:00
thisgun
eea5a2477b
쇼핑몰관리자 나이스페이신청 URL 링크 수정
2025-05-15 14:23:38 +09:00
thisgun
8cc101b617
접근차단 ip코드 다시 재수정
2025-05-15 14:09:27 +09:00
thisgun
316d3542a9
[KVE-2025-0259]XSS 취약점 수정
2025-05-15 09:53:28 +09:00
thisgun
c2da219473
[KVE-2025-0286]XSS 취약점 수정
2025-05-14 12:49:03 +09:00
thisgun
6874e767c2
kcp 모바일 테스트결제 url 변경
2025-05-14 12:00:09 +09:00
thisgun
5a91d37365
php warning 메시지 코드 수정
2025-05-14 11:59:40 +09:00
thisgun
f9c972d866
[KVE-2025-0191] Stored XSS (bypass html_purify via Open Redirect) 취약점 수정
2025-04-17 16:04:01 +09:00
thisgun
ada8f28aae
버전 5.6.12 수정
2025-04-15 16:33:05 +09:00
thisgun
11afc52b84
접근차단 ip 코드의 위치 다시 재수정
2025-04-15 16:31:27 +09:00
thisgun
d9c3f0e66c
Merge branch 'master' of github.com:gnuboard/gnuboard5
2025-04-15 12:06:31 +09:00
thisgun
49da5c33df
버전 5.6.11 수정
2025-04-15 11:56:53 +09:00
thisgun
29250f264a
첩근차단 ip코드의 위치 수정
2025-04-15 11:44:40 +09:00
thisgun
df00641290
php warning 메시지 코드 수정
2025-04-15 11:20:44 +09:00
thisgun
a05a1403f5
Merge branch 'master' of github.com:gnuboard/g5-update
2025-04-15 10:52:11 +09:00
thisgun
62ff45b31f
php warning 메시지 코드 수정
2025-03-31 15:36:32 +09:00
thisgun
918ad48675
이미지 태그에 loading=lazy 가 있을경우 viewimagereisze 함수에서 width 속성을 추가하지 않도록 수정#355
2025-03-14 16:40:26 +09:00
thisgun
e5128bf02e
cheditor5 에 지도아이콘 제거
2025-02-20 12:52:39 +09:00
thisgun
0a0d6e7228
버전 5.6.10 수정
2025-02-04 11:17:21 +09:00
thisgun
69180914f8
쇼핑몰 가상계좌 정보(toss)에 은행이름이 하나 더 붙은 문제 수정
2025-02-04 11:01:41 +09:00
thisgun
5552fda906
사이드뷰에서 잘못된 닉네임 또는 이름이 출력되는 오류 수정
2025-02-04 10:49:01 +09:00