diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index 183f82d495..b645d2085d 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -9,6 +9,7 @@ All notable changes to the **Prowler API** are documented in this file. ### Added - Support for developing new integrations [(#7167)](https://github.com/prowler-cloud/prowler/pull/7167). +- HTTP Security Headers [(#7289)](https://github.com/prowler-cloud/prowler/pull/7289). --- diff --git a/api/src/backend/api/tests/test_views.py b/api/src/backend/api/tests/test_views.py index 013a22bd12..312ed3f8fc 100644 --- a/api/src/backend/api/tests/test_views.py +++ b/api/src/backend/api/tests/test_views.py @@ -40,6 +40,14 @@ def today_after_n_days(n_days: int) -> str: ) +class TestViewSet: + def test_security_headers(self, client): + response = client.get("/") + assert response.headers["X-Content-Type-Options"] == "nosniff" + assert response.headers["X-Frame-Options"] == "DENY" + assert response.headers["Referrer-Policy"] == "strict-origin-when-cross-origin" + + @pytest.mark.django_db class TestUserViewSet: def test_users_list(self, authenticated_client, create_test_user): diff --git a/api/src/backend/config/django/base.py b/api/src/backend/config/django/base.py index 1afa12ec65..7ce3e8c63c 100644 --- a/api/src/backend/config/django/base.py +++ b/api/src/backend/config/django/base.py @@ -236,3 +236,8 @@ DJANGO_OUTPUT_S3_AWS_SECRET_ACCESS_KEY = env.str( ) DJANGO_OUTPUT_S3_AWS_SESSION_TOKEN = env.str("DJANGO_OUTPUT_S3_AWS_SESSION_TOKEN", "") DJANGO_OUTPUT_S3_AWS_DEFAULT_REGION = env.str("DJANGO_OUTPUT_S3_AWS_DEFAULT_REGION", "") + +# HTTP Security Headers +SECURE_CONTENT_TYPE_NOSNIFF = True +X_FRAME_OPTIONS = "DENY" +SECURE_REFERRER_POLICY = "strict-origin-when-cross-origin"