Update auto_translator.py to fix the Path Traversal Vulnerability

This commit is contained in:
Hirad Rasoolinejad
2023-10-30 00:11:46 +03:30
committed by GitHub
parent eb41c2ff6a
commit 794792e0f8

View File

@@ -6,9 +6,13 @@ import os
def get_path(lang): def get_path(lang):
# if lang == 'en': base_dir = os.path.abspath('../assets/translations')
# return f'../assets/translations/strings.i18n.json' lang_file = f'strings_{lang}.i18n.json'
return f'../assets/translations/strings_{lang}.i18n.json' path = os.path.join(base_dir, lang_file)
if path.startswith(base_dir):
return path
else:
raise ValueError('Invalid language file path')
def read_translate(lang): def read_translate(lang):
@@ -43,5 +47,5 @@ if __name__ == "__main__":
translator = GoogleTranslator(source=src, target=dst if dst != 'zh' else "zh-CN") translator = GoogleTranslator(source=src, target=dst if dst != 'zh' else "zh-CN")
recursive_translate(src_pofile, dst_pofile, translator) recursive_translate(src_pofile, dst_pofile, translator)
with open(get_path(dst), 'w') as df: with open(os.path.abspath(get_path(dst)), 'w') as df:
json.dump(dst_pofile, df, ensure_ascii=False, indent=4) json.dump(dst_pofile, df, ensure_ascii=False, indent=4)