Commit Graph
100 Commits
Author SHA1 Message Date
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
thisgunandClaude 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
thisgun 13759821fe 메일 함수 예외 로그 추가 #354 2025-02-03 17:56:42 +09:00
thisgun 2e7843da56 php warning 메시지 코드 수정 2025-02-03 11:36:01 +09:00
thisgun 33ee904f60 버전 5.6.9 수정 2025-01-21 16:26:06 +09:00