| English | 의미 |
|---|---|
| parameterised query/ˌpærəˈmetəraɪzd ˈkwɪərɪ/ | 파라미터화 쿼리 |
유효한 ID라도 비공개 데이터를 요청할 수 있음
- 학생 ID는 유효한 정수일 수 있으며 여전히 다른 사람의 것이 될 수 있습니다. 입력 검증만으로는 비공개 course 목록이 열려서는 안 됩니다.
- 이 경로에서는 인증된 학생이 자신만의 목록만 읽을 수 있어야 합니다. 비공개 행을 가져오기 전에 호출자의 신원을 확인하고 해당 정책을 적용하십시오.
제출된 학생 ID가 올바른 유형입니다. 개인 조회에는 여전히 무엇을 확인해야 합니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
올바른 형상은 접근权的을 보장하지 않습니다.
허용된 행과 필드만 가져오기
- 파라미터화된 쿼리는 허용된 학생 ID를 데이터로 바인딩합니다. 인터페이스가 필요한 필드만 선택하십시오. 예: course ID와 제목.
- 모든 학생의 비공개 기록을 다운로드하여 브라우저에서 원치 않는 것을 숨기지 마십시오. 수신자가 전체 응답을 검사할 수 있습니다.
왜 각 학생의 개인 기록을 전송하지 않고 브라우저 필터링으로 단순히 숨겨야 합니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
행 반환 전에 서버에서 개인 데이터 접근을 강제해야 합니다.
빈 및 거절 응답 정의
- 이 계약에서 course가 없는 허용된 학생에게는 200과
[]이 반환됩니다. 존재하지 않는 리소스나 거절된 호출자는 합의된 API 정책에 따릅니다. - 일부 정책은 비공개 존재 여부를 노출하지 않기 위해 404을 사용합니다. 해당 정책을 일관되게 유지하십시오. 예상치 못한 데이터베이스 실패를 위장하기 위해 성공 응답을 사용하지 마십시오.
이 계약 조건 하에서 permitted 학생은 존재하지만 수강 중인 과정이 없습니다. 적절한 응답은 무엇입니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
성공적인 빈 목록은 데이터베이스 오류가 아닌 정의된 결과입니다.
혼란스러운 상태 없이 응답 렌더링
- 성공 시 선택된 course 제목을 텍스트로 렌더링하십시오. “No courses yet”는 성공적인 빈 응답 이후에만 표시하십시오.
- 로딩 중에는 요청이 대기 중임을 표시하십시오. 실패 시 목록을 로드할 수 없음을 설명하고 적절한 재시도를 제공하십시오. 목록이 비공백이라고 주장하지 마십시오.
성공한 빈 목록과 실패한 요청에 대해 별도의 메시지를 작성하십시오.
난이도 3/5 · 200 코인 + 오늘 첫 완료 시 소액 보너스
"아직 과정이 없습니다"와 "과정을 불러오지 못했습니다. 다시 시도하십시오."는 다릅니다.
응답 진행 상황을 표시에 맞추십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
관찰된 결과로 입증되는 것만 표시하십시오.
변경 사항 처리 시 부분 저장 방지
- 여러 관련 데이터베이스 변경 사항을 포함하는 쓰기 작업은 트랜잭션이 필요할 수 있습니다. 의도한 변경 사항을 함께 커밋하거나 실패 시 롤백하십시오.
- Writes를 독립적으로 검증하고 인증하십시오. 이전에 성공한 읽기 operation은 모든 이후 변경을 인증하거나 드롭다운 값을 SQL에 붙여넣기에 안전하게 만들지 않습니다.
드롭다운 값은 SQL에 붙여넣기에 안전합니다. 사용자는 다른 값을 보낼 수 없기 때문입니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
호출자가 변경된 요청을 보낼 수 있습니다. 값을 바인딩하고 서버에서 유효성을 검증하십시오.
관련한 작성 작업에는 트랜잭션이 필요하여 실패 시 의도된 변경 사항 중 절반만 저장되어 남지 않도록 해야 합니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
트랜잭션은 의도한 그룹을 커밋하거나 롤백할 수 있으나, 여전히 검증 및 인증이 필요합니다.
허용된 전체 여정 검토
- 신원 및 권한 추적 → 유효한 입력 → 매개변수화된 조회 → 정의된 응답 → 정직한 표시 순서를 확인하십시오. 표시 여부를 확인하기 전에 접근이 거부되는지를 먼저 테스트하십시오.
- 일반 목록, 빈 목록 및 요청 실패 시의 페스처(fixtures)를 사용하십시오. 허용된 응답에 개인 필드 및 다른 학생의 행이 포함되어 있지 않은지 확인하십시오.
올바른 쿼리는 올바른 루트의 일부입니다. 호출자, 허용된 데이터, 응답 계약 및 가시적 상태도 서로 일치해야 합니다.
허용된 과정 목록 워크플로우를 순서대로 나열하십시오.
난이도 3/5 · 200 코인 + 오늘 첫 완료 시 소액 보너스
서버의 검증이 검색 및 전달에 선행됩니다.