Devin.KR

입력·저장·출력의 안전한 처리

입력 검증과 질의·출력 처리를 구분해 적용합니다.

진도 0%

레슨

  1. 입력 타입과 크기 검증

    허용 형식과 길이의 경계값을 검증합니다.

  2. SQL 값과 질의 구조 분리

    매개변수화된 질의로 입력을 값으로 처리합니다.

  3. 저장값과 화면 출력 맥락

    HTML 텍스트 출력과 입력 검증의 역할을 구분합니다.

  4. 세션 요청과 CSRF 방어

    세션 쿠키를 쓰는 변경 요청의 출처와 토큰을 검증합니다.

입력·저장·출력의 안전한 처리 미션

m05-threat-model의 앱과 보고서를 이어받아 이번 점검 결과를 추가합니다. 본인 로컬 환경과 합성 데이터만 사용합니다.

요구사항

  • 이전 앱의 저장소를 실습 SQLite 어댑터로 연결하고 자료를 이관합니다.
  • 입력 한도·매개변수화·출력 맥락 처리·CSRF 방어를 적용합니다.
  • 각 결함의 조건·영향·수정 전후 테스트를 보고서에 추가합니다.

완료 기준

  • 특수문자 입력이 질의 구조를 바꾸지 않고 타인 자료 접근이 거절됩니다.
  • 입력 경계값과 화면 텍스트 출력 테스트가 통과합니다.
  • CSRF 토큰 없음·불일치 요청이 거절되고 정상 변경은 성공합니다.
  • bash check.sh는 앞 위협 모델·인증 인가 24건 회귀와 이번 SQLite·화면·CSRF·HTTP 어댑터·보고서 검사를 실행합니다.
  • 이전 Map 자료의 id·owner·본문 이관, 재연결 유지, 충돌 배치 전체 롤백을 검사합니다.
  • HTTP 어댑터 검사는 request 리스너 직접 호출이며 실제 브라우저·소켓 검증과 구분합니다.
bash check.sh
미션 시작 코드
모범 답안모범 답안 내려받기

검토 기준

  • 관찰 결과와 추측을 구분하고 판단 근거를 설명합니다.
  • 이전 산출물과 이번 변경의 연결 및 남은 위험을 설명합니다.
  • 허가 범위와 민감 정보 최소화 기준을 지킵니다.
  • E01~E05의 시점과 새 SQLite 저장 경계를 구분하고 E06에 각 결함의 조건·영향·수정·정상 대조·잔여 위험을 기록합니다.