1
0
mirror of https://github.com/LibreTranslate/LibreTranslate.git synced 2024-11-16 20:40:10 +01:00
LibreTranslate/libretranslate/security.py

16 lines
428 B
Python
Raw Permalink Normal View History

2021-10-26 21:41:14 +02:00
import os
2021-10-26 21:41:14 +02:00
class SuspiciousFileOperation(Exception):
pass
2021-10-26 21:41:14 +02:00
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("{} is not safe".format(unsafe_path))
# Passes the check
return unsafe_path