Fuer /move: gleicher tempdir-Check wie in /download.
## Probleme
**a) `/browse`** — `server.py:201-214`
```python
def browse(path: str = "/home/vchuser"):
path = os.path.abspath(path)
if not os.path.isdir(path):
raise HTTPException(400, ...)
```
Keine Whitelist. Authentifizierter User kann `/etc`, `/root`, fremde Home-Verzeichnisse listen.
**b) `/move`** — `server.py:339-359`
Kein tempdir-Check. Im Gegensatz zu `/download` und `/preview` (in #1 gefixt) fehlt hier die Sandbox.
## Fix
```python
ALLOWED_BROWSE_ROOT = "/home/vchuser"
if not os.path.abspath(path).startswith(ALLOWED_BROWSE_ROOT):
raise HTTPException(403, "Zugriff verweigert")
```
Fuer `/move`: gleicher tempdir-Check wie in `/download`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Probleme
a)
/browse—server.py:201-214Keine Whitelist. Authentifizierter User kann
/etc,/root, fremde Home-Verzeichnisse listen.b)
/move—server.py:339-359Kein tempdir-Check. Im Gegensatz zu
/downloadund/preview(in #1 gefixt) fehlt hier die Sandbox.Fix
Fuer
/move: gleicher tempdir-Check wie in/download.Fix umgesetzt in
server.py:BROWSE_ROOT = "/home/vchuser"als Sandbox/browselehnt Pfade ausserhalb mit 403 ab,parentistNonean der Wurzel/moveprueft jetzttempfile.gettempdir()-Praefix (analog/download), 403 bei MismatchManueller Test:
/etcund/root-> 403;/home/vchuser,/home/vchuser/projects-> 200;/movemit folder=/home/vchuser-> 403.