Fix security vulnerability

This commit is contained in:
2025-09-19 19:30:18 +03:00
Unverified
parent 161e77f8a0
commit 76cb084675
+6 -1
View File
@@ -1,5 +1,7 @@
from pathlib import Path from pathlib import Path
import re
from fastapi import APIRouter, Depends, HTTPException, UploadFile, File from fastapi import APIRouter, Depends, HTTPException, UploadFile, File
from fastapi.responses import FileResponse
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from PIL import Image from PIL import Image
import os import os
@@ -78,12 +80,15 @@ async def get_profile_picture(filename: str):
""" """
Serve profile picture files Serve profile picture files
""" """
if not re.match(r"^\d+_[0-9a-z]+\.jpg$", filename):
raise HTTPException(status_code=400, detail="Invalid file name")
filepath = os.path.join(PROFILE_PICTURES_DIR, filename) filepath = os.path.join(PROFILE_PICTURES_DIR, filename)
if not os.path.exists(filepath): if not os.path.exists(filepath):
raise HTTPException(status_code=404, detail="Profile picture not found") raise HTTPException(status_code=404, detail="Profile picture not found")
from fastapi.responses import FileResponse
return FileResponse(filepath, media_type="image/jpeg") return FileResponse(filepath, media_type="image/jpeg")
@router.get("/user/profile") @router.get("/user/profile")