안전하지 않은 임시 파일 생성 방법을 사용해서는 안 됩니다.

 

안전하지 않은 방법으로 임시 파일을 만들면 애플리케이션이 파일 이름에 대한 경쟁 조건에 노출됩니다. 악의적인 사용자가 애플리케이션보다 먼저 예측 가능한 이름으로 파일을 만들려고 시도할 수 있습니다. 공격이 성공하면 다른 파일이 액세스, 수정, 손상 또는 삭제될 수 있습니다. 애플리케이션이 상승된 권한으로 실행되는 경우 이러한 위험은 더욱 높아집니다.

과거에는 다음과 같은 취약점이 발생했습니다:

규칙을 어긴 코드

import tempfile

filename = tempfile.mktemp() # 규칙을 어긴 코드
tmp_file = open(filename, "w+")

규칙을 준수한 해결책

import tempfile

tmp_file1 = tempfile.NamedTemporaryFile(delete=False) # 규칙을 준수한 코드; tempfile.mktemp()로 쉽게 대체 가능
tmp_file2 = tempfile.NamedTemporaryFile() # 규칙을 준수한 코드; 생성된 파일은 자동으로 삭제됩니다

같이보면 좋은 자료

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project