mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-07-08 04:42:11 +02:00
commit
dda89107e2
4 changed files with 9 additions and 1 deletions
BIN
.coverage
BIN
.coverage
Binary file not shown.
|
|
@ -98,11 +98,14 @@ def normalize_language(value: Optional[str]) -> str:
|
|||
return "en"
|
||||
|
||||
|
||||
# Returns a mutable object - caller must not mutate!
|
||||
@lru_cache(maxsize=32)
|
||||
def get_language_pack(language: str) -> Dict[str, str]:
|
||||
"""Load the language pack for `language` from package resources."""
|
||||
|
||||
lang = normalize_language(language)
|
||||
if lang not in SUPPORTED_LANGUAGES:
|
||||
lang = "en"
|
||||
|
||||
try:
|
||||
with importlib_resources.open_text(
|
||||
|
|
|
|||
|
|
@ -40,6 +40,12 @@ class I18nPackEndpoint:
|
|||
return web.HTTPUnauthorized()
|
||||
|
||||
lang = request.match_info.get("lang") or "en"
|
||||
|
||||
# This is a path traversal defense, and is a critical sec defense.
|
||||
# Do not remove!
|
||||
if "/" in lang or ".." in lang:
|
||||
return web.HTTPBadRequest(reason="Invalid language code")
|
||||
|
||||
pack = get_language_pack(lang)
|
||||
|
||||
return web.json_response(pack)
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
__version__ = "2.2.999"
|
||||
Loading…
Add table
Add a link
Reference in a new issue