배포 전에 확인하는 보안 검토
당신이 만든 것의 위험을, 세상에 내놓기 전에 알게 됩니다.
발견 위치와 수정 방향, 점검하지 못한 범위까지.
코드의 다음 결정을, 근거와 함께 내리세요.
샘플은 로그인과 자료 전송 없이 체험할 수 있어요.
직접 점검은 사전 승인된 계정에서 이용할 수 있어요.
샘플로 보는 결과
흩어진 근거가,
하나의 리포트로.
높음정적 분석 예시 · 실행 검증 안 함
SQL 쿼리에 사용자 입력이 직접 포함됨
발견 위치 01
src/users/user.repository.ts : 42
const sql = `SELECT id, email FROM users
WHERE email = '${email}'`;
return this.dataSource.query(sql);
발견 근거 02
입력값이 SQL 명령과
섞이는 지점이에요.
요청의 email 값이 SQL 문자열에 직접 합쳐져, 쿼리 구조에 영향을 줄 수 있어요.
샘플 규칙 teum/sql-user-input
수정 방향 03
명령과 값을 분리하세요.
적용 전, 드라이버의 파라미터 형식과 반환값을 확인하세요.
MariaDB + TypeORM 예시
return this.dataSource.query(
'SELECT id, email FROM users WHERE email = ?',
[email],
);결과를 읽는 기준
확인한 것과
확인하지 못한 것을 함께.
발견 건수만으로 판단하지 않도록, 근거와 점검 범위를 함께 보여드려요.
발견 근거
어디서 발견했는지
파일·줄·규칙을 따라 발견 근거를 읽고,
수정 전후 코드를 비교해요.샘플 리포트R-042 · F-014src/users/user.repository.ts42행
SQL 쿼리에 사용자 입력이 직접 포함됨
- 발견 규칙
- teum/sql-user-input
검토할 내용
무엇을 확인해야 하는지
수정 방향과 검토할 내용을 확인해요.
처리 상태를 바꾸어도 재점검 결과가 되지는 않아요.샘플 리포트R-042 · F-014수정 후, 직접 확인할 것
- 정상 이메일 조회 결과가 기존과 같은지 확인
- 사용자 입력이 SQL 문법이 아닌 값으로 전달되는지 확인
실행 검증 안 함
점검 범위
어디까지 점검했는지
지원·제외·미점검 범위를 구분해요.
무엇을 살펴봤고, 무엇이 남았는지 함께 확인하세요.샘플 리포트R-042- 지원
- 코드 정적 분석 · 비밀정보 패턴
- 제외
- 제외 패턴에 해당하는 파일
- 미점검
- 의존성 분석 현재 미지원
자료를 맡기기 전에
자료가 어디로 가는지,
먼저 확인하세요.
어떤 자료가 전송되고, 어떻게 분석되는지.
선택한 코드의 전송 범위와 결과의 보관·삭제 상태까지
데이터 처리 페이지에서 안내해요.
선택한 코드
선택한 범위의 지원 텍스트 파일
격리된 분석
코드를 실행하지 않는 정적 분석
결과와 처리 기록
발견 근거와 자료의 보관·삭제 상태
점검 준비
저장소를 연결하고,
필요한 코드부터.
전송할 범위를 먼저 확인하고,
선택한 커밋의 코드만 준비해요.
코드 안의 근거
저장소와 폴더 선택
checkout-apimainsrc/선택한 폴더별도 연결한 저장소에서 지원하는 텍스트 파일만 수집해요.
전송 전 범위 확인
필요한 코드만 준비
- 선택한 범위
src/- 분석 언어
- JS · TS · Python 정적 분석
- 코드 기준
- 선택한 커밋 고정
한 번에 준비할 수 있는 범위
- 지원 파일
- 최대 2,000개
- 원본 용량
- 100 MiB
- 압축 후
- 20 MiB
큰 저장소도, 필요한 폴더부터. 압축 후 20 MiB가 넘으면 폴더를 좁혀 선택할 수 있어요.