-
django.core.exceptions.SuspiciousFileOperation: Detected path traversal attemptDjango 2021. 8. 2. 13:59
서론
이 글은 Django FileField upload_to Custom 야매 적용기 와 연관된 페이지입니다.
찾으시는 내용이 없을 수 있습니다.
본론
이전 글의 upload to Custom을 야매로 적용 후 Docker ec2환경에서 적용을 하려고 했더니 제목과 같은 에러가 떴다.
upload_to를 적용하면 대충 /project3/media/~~~/~~~/~~~.png 이렇게 적용되는데
일단 에러 내용을 읽어보면 경로 부분에서 뭔가 에러가 발생했다고 한다.
이에 대한 에러를 찾아보면 경로가 잘못됐다니 경로가 png 확장자까지 들어가야 한다니 이런 말이 있었는데
다 안됐고 비슷한 내용이 있는 사이트를 찾았다
https://code.djangoproject.com/ticket/32718
위의 사이트에서 일부 글을 가져와보면I believe an absolute path outside of Media Root should fail, that is correct (in my opinion) - as an absolute path might be able to write shell scripts around the file system...
It should however, work for a relative file path.
bad_file.name = "/etc/init.d/nameofscript.sh"
# or
bad_file.name = "../../../../../usr/local/lib/bad.file"절대 경로를 작성하게 되면 외부에서 셸 스크립트라던지 리눅스 내부의 key 파일들을 탐색할 수 있다고 한다.
그러니까 맞는 경로로는 맨 앞의 ' / '를 지우는 것이 이 글의 해결 방법이었다.
/project3/media/~~~/~~~/~~~.png 가 아닌
project3/media/~~~/~~~/~~~.png 이렇게 해야 정상적으로 저장이 가능하다.
'Django' 카테고리의 다른 글
drf_spectacular를 사용한 api docs 만들기 (0) 2022.11.20 Django서버에 간단한 HTTPS Let's Encrypt 적용하기 (0) 2022.07.30 Django queryset distinct and sort (0) 2021.08.02 Django to AWS S3 업로드간 발생하는 I/O operation on closed file 해결방법 (0) 2021.06.21 Django OneToOneField로 연결된 model 자동 생성 (0) 2021.06.14