Skip to content

회의록 | 5주차

jeongmin edited this page Feb 2, 2024 · 1 revision

기간: 24.01.29

1월 29일

to-do

  • Config 값 유효성 검사
  • 에러 코드 추가
  • cgi path, error_page 저장 시 projectRootPath를 붙이기
  • 중복된 지시자가 들어오는 경우(error_page 제외) 처리

[ config 파일 값 유효성 검사 ]

  • 전체 모두 빈 값이 아닌지 확인
  • path에 해당하는 값 동일하게 검사할 것
    • uri에 포함되지 않는 문자가 들어가있는지(?도 허용하지 않음)
    • / 로 시작하는지 확인
    • dot-segment로 돌리기
    • 퍼센트 인코딩으로 돌리기
  1. project_root - path
    • 중복된 지시자가 들어오는 경우 예외
  2. server 블록
    • 중복된 지시자가 들어오는 경우 예외
    • listen - host
      • [0-255].[0-255].[0-255].[0-255] 형식인지 확인
    • listen - port
      • 모두 숫자인지 확인
      • port 번호 범위 확인
      • 잘 알려진 포트인지 확인
    • server_name
      • 저장할 때 소문자로 저장
      • 중복 확인
      • :랑 @, /는 제외하고 reg-name = *( unreserved / pct-encoded / sub-delims )
  3. location 블록
    • error page를 제외하고 중복된 지시자가 들어오는 경우 예외
    • root - path
    • index - path처럼 검사 동일
    • allow_method - 허용하지 않는 메서드 들어왔는지 검사
    • client_max_body_size - int로 변환 실패, 허용하는 범위를 넘어섰는지
    • autoindex - on, off만 허용
    • error_page - code
      • 모두 숫자인지 확인, 3자리 인지 확인
      • 4XX, 5XX 인 경우 확인
      • 중복된 코드인지 확인
    • error_page - uri
      • 저장할 때 project_root + uri 경로로 저장
      • path 와 동일
      • ErrorBuilder에서 파일 경로 부분 수정
    • cgi - extension
      • . 으로 시작하는지 확인
      • 확장자에 포함될 수 있는 문자인지 확인
    • cgi - path
      • path 와 동일
      • 저장할 때 project_root + uri 경로로 저장
    • cgi - upload_dir
      • path와 동일
      • 저장할 때 project_root + uri 경로로 저장
    • redirect
      • path와 동일

Clone this wiki locally