사용자 파일 업로드
사용자는 다음 위치에 파일을 업로드할 수 있습니다:
- 프로젝트의 문제 또는 병합 요청.
- 그룹의 에픽.
GitLab은 무단 사용자가 URL을 추측하지 못하도록 무작위 32자 ID가 포함된 직접 URL을 생성합니다. 이 무작위화는 민감한 정보를 포함한 파일에 대한 보안을 제공합니다.
사용자가 GitLab 문제, 병합 요청 및 에픽에 업로드한 파일의 URL 경로에는 /uploads/<32-character-id>
가 포함되어 있습니다.
경고:
알 수 없거나 신뢰할 수 없는 출처에서 업로드한 파일을 다운로드할 때는 주의하세요. 특히 파일이 실행 파일이나 스크립트인 경우 더욱 조심해야 합니다.
업로드된 파일에 대한 액세스 제어
- 강제 권한 확인이 GitLab 15.3에서 일반적으로 사용 가능해졌습니다. 기능 플래그
enforce_auth_checks_on_uploads
가 제거되었습니다.- 사용자 인터페이스의 프로젝트 설정이 GitLab 15.3에서 도입되었습니다.
다음에 업로드된 비이미지 파일에 대한 접근은:
- 문제 또는 병합 요청은 프로젝트 가시성에 따라 결정됩니다.
- 그룹 에픽은 그룹 가시성에 따라 결정됩니다.
공용 프로젝트나 그룹의 경우, 누구나 직접 첨부 URL을 통해 이러한 파일에 접근할 수 있으며, 문제가 비공식적이거나 병합 요청이 비밀인 경우에도 마찬가지입니다.
개인 및 내부 프로젝트의 경우, GitLab은 인증된 프로젝트 구성원만 비이미지 파일 업로드, 즉 PDF에 접근할 수 있도록 보장합니다.
기본적으로 이미지 파일은 동일한 제한이 없으며, 누구나 URL을 사용하여 볼 수 있습니다. 이미지 파일을 보호하려면 모든 미디어 파일에 대한 권한 확인 활성화 를 통해 인증된 사용자만 볼 수 있도록 해야 합니다.
이미지에 대한 인증 확인은 알림 이메일 본문에 표시 문제를 일으킬 수 있습니다.
이메일은 종종 GitLab에 인증되지 않은 클라이언트(예: Outlook, Apple Mail 또는 모바일 장치)에서 읽힙니다.
인증되지 않은 클라이언트에서는 이메일의 이미지가 깨지거나 사용할 수 없게 보일 수 있습니다.
모든 미디어 파일에 대한 권한 확인 활성화
인증된 프로젝트 구성원만 개인 및 내부 프로젝트에서 비이미지 첨부 파일(특히 PDF)을 볼 수 있습니다.
개인 또는 내부 프로젝트에서 이미지 파일에 대한 인증 요구 사항을 적용하려면:
필수 조건:
- 프로젝트의 유지 관리자 또는 소유자 역할이 있어야 합니다.
- 프로젝트 가시성 설정이 비공개 또는 내부이어야 합니다.
모든 미디어 파일에 대한 인증 설정을 구성하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 일반 을 선택합니다.
- 가시성, 프로젝트 기능, 권한을 확장합니다.
- 프로젝트 가시성으로 스크롤하고 미디어 파일 보기 위해 인증 필요를 선택합니다.
참고:
공용 프로젝트에 대해 이 옵션을 선택할 수 없습니다.
업로드된 파일 삭제
해당 파일에 민감하거나 기밀 정보가 포함된 경우 업로드된 파일을 삭제해야 합니다. 해당 파일을 삭제하면 사용자는 파일에 접근할 수 없으며 직접 URL은 404 오류를 반환합니다.
프로젝트 소유자와 유지 관리자는 인터랙티브 GraphQL 탐색기를 사용하여 GraphQL 엔드포인트에 접근하고 업로드된 파일을 삭제할 수 있습니다.
예를 들어:
mutation {
uploadDelete(input: { projectPath: "<path/to/project>", secret: "<32-character-id>", filename: "<filename>" }) {
upload {
id
size
path
}
errors
}
}
소유자 또는 유지 관리자가 아닌 프로젝트 구성원은 이 GraphQL 엔드포인트에 접근할 수 없습니다.