Fix: Karte lädt wieder + safe_media_path + Foto-Löschung (SW by-v932)
- map.js: appState→_appState im Template, addEventListener mit ?. (kein Crash ohne Buttons) - media_utils.py: safe_media_path lstrip-Bug — 'dogs/' wurde zu 'ogs/' gekürzt; jetzt korrekte removeprefix-Logik → Altes Hundeprofil-Foto wird jetzt wirklich gelöscht
This commit is contained in:
parent
e7b6cb3c33
commit
781e3383bd
5 changed files with 12 additions and 7 deletions
|
|
@ -56,7 +56,12 @@ def safe_media_path(media_dir: str, url: str) -> str | None:
|
|||
Konstruiert einen sicheren Dateipfad aus einer gespeicherten URL.
|
||||
Gibt None zurück wenn der Pfad außerhalb von media_dir liegt (Path-Traversal-Schutz).
|
||||
"""
|
||||
relative = url.lstrip("/media/").lstrip("/")
|
||||
if url.startswith("/media/"):
|
||||
relative = url[len("/media/"):]
|
||||
elif url.startswith("/"):
|
||||
relative = url[1:]
|
||||
else:
|
||||
relative = url
|
||||
candidate = os.path.realpath(os.path.join(media_dir, relative))
|
||||
real_base = os.path.realpath(media_dir)
|
||||
if not candidate.startswith(real_base + os.sep) and candidate != real_base:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue