[python] 웹사이트 디렉토리 탐색 방지
os.path
모듈을 사용한 방법
os.path
모듈을 사용하여 경로를 검증할 수 있습니다. 아래는 이를 이용한 코드 예시입니다.
import os
def is_safe_path(basedir, path):
return os.path.realpath(path).startswith(basedir)
위의 코드에서 basedir
는 허용할 디렉토리의 기본 경로를 나타내며, path
는 실제 요청 경로입니다. 이 함수를 사용하여 True
가 반환되면 허용되지 않은 경로이므로 요청을 거부할 수 있습니다.
pathlib
모듈을 사용한 방법
또 다른 방법으로는 pathlib
모듈을 사용하여 경로를 확인하는 것입니다. 아래는 pathlib
모듈을 이용한 코드 예시입니다.
from pathlib import Path
def is_safe_path(basedir, path):
return Path(path).resolve().parent == Path(basedir).resolve()
이 방법을 사용하면 같은 결과를 얻을 수 있습니다.
요약
공격자가 웹사이트의 디렉토리를 조회하고 민감한 정보에 접근하는 것을 방지하기 위해 요청의 경로를 확인하는 것이 중요합니다. 파이썬의 os.path
나 pathlib
모듈을 사용하여 웹사이트 디렉토리 탐색을 방지할 수 있습니다.
이렇게 요청을 필터링 함으로써 웹사이트의 보안을 향상시킬 수 있습니다.
관련 참고 자료: