[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.pathpathlib 모듈을 사용하여 웹사이트 디렉토리 탐색을 방지할 수 있습니다.

이렇게 요청을 필터링 함으로써 웹사이트의 보안을 향상시킬 수 있습니다.

관련 참고 자료: