Skip to content

Commit c419575

Browse files
dantownsendSkelmis
andauthored
Merge pull request from GHSA-pmww-v6c9-7p83
* feat: add csp headers on media routes * feat: use CSPMiddleware instead * chore: bump piccolo API version --------- Co-authored-by: skelmis <[email protected]>
1 parent 9718c02 commit c419575

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

piccolo_admin/endpoints.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from piccolo_api.crud.endpoints import OrderBy, PiccoloCRUD
3131
from piccolo_api.crud.hooks import Hook
3232
from piccolo_api.crud.validators import Validators
33+
from piccolo_api.csp.middleware import CSPMiddleware, CSPConfig
3334
from piccolo_api.csrf.middleware import CSRFMiddleware
3435
from piccolo_api.fastapi.endpoints import FastAPIKwargs, FastAPIWrapper
3536
from piccolo_api.media.base import MediaStorage
@@ -667,11 +668,17 @@ def __init__(
667668
media_storage,
668669
) in table_config.media_columns.items():
669670
if isinstance(media_storage, LocalMediaStorage):
671+
# We apply a restrictive CSP here to mitigate SVG
672+
# files being used maliciously when viewed by admins
670673
private_app.mount(
671-
path=f"/media-files/{column._meta.table._meta.tablename}/{column._meta.name}/", # noqa: E501
672-
app=StaticFiles(
673-
directory=media_storage.media_path
674-
),
674+
path=f"/media-files/{column._meta.table._meta.tablename}/{column._meta.name}/",
675+
# noqa: E501
676+
app=CSPMiddleware(
677+
StaticFiles(
678+
directory=media_storage.media_path
679+
),
680+
config=CSPConfig(default_src="none")
681+
)
675682
)
676683

677684
#######################################################################

requirements/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
piccolo>=1.5.0
2-
piccolo_api>=1.1.0
2+
piccolo_api>=1.3.1
33
uvicorn
44
aiofiles>=0.5.0
55
Hypercorn

0 commit comments

Comments
 (0)