데이터 내보내기를 취소할 때 파일과 권한을 함께 정리하기
대용량 내보내기를 취소했다고 표시해도 백그라운드 작업이 파일을 완성하거나 임시 파일이 남을 수 있습니다. 취소는 화면 상태를 바꾸는 데서 끝나지 않고 생성 작업과 다운로드 경로까지 연결돼야 합니다.
취소 요청과 취소 완료를 구분한다
작업에 대한 취소 권한을 확인하고 서버에 취소 요청을 기록합니다. 실행 중인 작업이 이를 확인해 중단할 때까지는 취소 처리 중으로 표시합니다. 파일을 공개 가능한 상태로 바꾸기 직전에도 작업 상태를 다시 확인해 완료 처리와 취소 요청이 엇갈리는 경우를 다룹니다.
완성 파일과 임시 파일의 경로를 정리한다
취소가 확정된 작업의 다운로드를 차단하고 임시 산출물을 정리합니다. 이미 파일이 제공된 뒤의 취소라면 추가 다운로드 차단과 보관 정책을 별도로 적용합니다. 사용자가 이미 받은 사본까지 회수했다고 표현하지 않습니다.
다른 고객의 작업은 취소할 수 없게 한다
작업 식별자를 바꿔 요청하더라도 현재 사용자가 그 작업을 취소할 권한이 있는지 확인합니다. 생성 완료 직전의 취소, 중복 취소 요청, 정리 실패를 시험하고 남은 파일을 재점검할 담당자와 기록을 마련합니다.
적용 전 체크리스트
- 취소 접수와 실제 작업 중단이 구분되는가
- 취소된 작업이 파일을 새로 공개하지 않는가
- 작업별 취소 권한과 임시 파일 정리 결과를 확인하는가
참고 자료
OWASP API Security — Broken Object Level Authorization. 작업 식별자마다 행위 권한을 확인하는 원칙은 OWASP 자료를 참고했습니다. 취소 상태 전환과 파일 정리는 서비스 운영을 위한 설계 제안입니다.
#데이터내보내기 #작업취소 #파일보안 #접근제어 #테넌트보안 #비동기처리 #임시파일 #감사로그 #SaaS운영 #네이처프랙탈
이 주제를 실제 시스템으로 옮기려면 웹 서비스 개발 살펴보기