19 Commits
Author SHA1 Message Date
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 fe03163cce XSS 취약점 수정 2023-04-17 14:41:38 +09:00
thisgun 359b20606e PHP8 에서 경고문이 나올수 있는 코드 수정 2021-01-25 14:14:41 +09:00
thisgun 582d1a01f4 php8.0 버전 호환 코드 적용 및 PHP 끝 태그 삭제 일괄적용 2021-01-04 15:33:29 +09:00
thisgun 22aad37bfb 5.4 버전 내용 적용 2019-12-02 10:22:12 +09:00
thisgun b7edd3fa26 그누보드 AND 검색을 이용한 취약점 수정 (17-455) 2017-06-23 12:26:34 +09:00
chicpro 976c9d0f9b 모바일 제목 설정 적용되도록 수정 2015-11-18 12:03:15 +09:00
chicpro f1c56fe70c MySQLi 지원 추가 2015-10-12 14:12:45 +09:00
chicpro 164944dd0c XSS 취약점 수정 2015-07-14 12:10:44 +09:00
chicpro d50d618e01 Blind SQL Injection 취약점 수정 2015-07-03 11:40:54 +09:00
chicpro 808ac0f0e6 PHP_SELF 를 SCRIPT_NAME 으로 변경 2015-06-24 17:02:29 +09:00
chicpro 9cbff6835b sfl에 mb_id가 있으면 인기 검색어 기록하지 않도록 수정 2014-10-13 13:12:43 +09:00
chicpro ca7b488f4d 전체검색 결과 오류 수정 2014-08-07 09:42:30 +09:00
chicpro 14db33addb 전체 검색 결과 내용 표시 출력 코드 수정 2014-05-30 11:27:16 +09:00
chicpro a9ff55017b 검색어 특수문자 처리 코드 수정 2014-05-29 09:31:30 +09:00
chicpro 1c9f0f6018 사용자 코드 체크 및 정리 2014-03-26 17:14:30 +09:00
gnuboard 7c6335fb47 preg_replace 에 /u - unicode safe 적용 2013-11-18 13:34:24 +09:00
gnuboard 41d21074b5 그누보드5 2013-09-13 11:03:33 +09:00