fix(테이블관리): 중요 4건 일괄 (PR-C) #31

Merged
johngreen merged 1 commits from johngreen into main 2026-05-22 06:04:42 +00:00
Contributor

감사 결과 중요도 4건:

  1. getColumnGroup metaCols 11개로 확장 (objid/tenant_id/creator/modifier/created_at/updated_at 추가)
  2. updateColumnWebType 회사코드 격리 (멀티테넌트 위반 수정)
  3. validateUniqueConstraints N+1 해소 (hasColumn 루프 밖)
  4. sanitize 강화 (빈 문자열/숫자 시작/63자 초과/SQL 예약어 거부)
감사 결과 중요도 4건: 1. getColumnGroup metaCols 11개로 확장 (objid/tenant_id/creator/modifier/created_at/updated_at 추가) 2. updateColumnWebType 회사코드 격리 (멀티테넌트 위반 수정) 3. validateUniqueConstraints N+1 해소 (hasColumn 루프 밖) 4. sanitize 강화 (빈 문자열/숫자 시작/63자 초과/SQL 예약어 거부)
johngreen added 1 commit 2026-05-22 06:04:41 +00:00
1. getColumnGroup metaCols 확장 — 시스템 자동 생성 컬럼이 5개만 인식되어
   사용자 컬럼에 섞여 보이던 문제. objid / tenant_id / creator / modifier /
   created_at / updated_at 추가 (총 11개).

2. updateColumnWebType 회사코드 격리 — 모든 호출이 company_code='*' 로 저장돼
   회사 관리자가 자기 회사 전용 web_type 변경 시 모든 회사 공통 설정을 건드림.
   컨트롤러에서 @RequestAttribute("company_code") 받아 service 에 전달.

3. validateUniqueConstraints N+1 해소 — hasColumn 이 루프 안에서 매번 호출되어
   UNIQUE 컬럼 N 개일 때 N 번의 information_schema 조회. 루프 밖으로 빼서 1 번.

4. sanitize 강화 — 빈 문자열 / 숫자 시작 / 63자 초과 / SQL 예약어 모두
   IllegalArgumentException 으로 거부. 빈 식별자가 동적 SQL 에 끼어들어 500
   에러 노출되던 패턴 방지.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
johngreen merged commit db63ba6901 into main 2026-05-22 06:04:42 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gbpark/invyone#31