LibreTranslate/libretranslate/security.py
2023-07-09 12:29:11 +02:00

16 lines
420 B
Python

import os
class SuspiciousFileOperation(Exception):
pass
def path_traversal_check(unsafe_path, known_safe_path):
known_safe_path = os.path.abspath(known_safe_path)
unsafe_path = os.path.abspath(unsafe_path)
if (os.path.commonprefix([known_safe_path, unsafe_path]) != known_safe_path):
raise SuspiciousFileOperation(f"{unsafe_path} is not safe")
# Passes the check
return unsafe_path