{"id":36266112,"url":"https://github.com/pavlakis/csp-middleware","last_synced_at":"2026-01-11T08:03:45.921Z","repository":{"id":57036563,"uuid":"89528879","full_name":"pavlakis/csp-middleware","owner":"pavlakis","description":"Add Content-Security-Policy headers for PSR-7 requests. Uses the csp-builder library paragonie/csp-builder","archived":false,"fork":false,"pushed_at":"2022-11-22T23:59:49.000Z","size":38,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-12T01:48:46.477Z","etag":null,"topics":["content-security-policy","csp","middleware","php","php7","security"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pavlakis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-26T21:37:43.000Z","updated_at":"2022-11-22T23:30:13.000Z","dependencies_parsed_at":"2022-08-23T21:00:24.800Z","dependency_job_id":null,"html_url":"https://github.com/pavlakis/csp-middleware","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/pavlakis/csp-middleware","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavlakis%2Fcsp-middleware","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavlakis%2Fcsp-middleware/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavlakis%2Fcsp-middleware/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavlakis%2Fcsp-middleware/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pavlakis","download_url":"https://codeload.github.com/pavlakis/csp-middleware/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavlakis%2Fcsp-middleware/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28297985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T04:44:51.577Z","status":"ssl_error","status_checked_at":"2026-01-11T04:44:44.232Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["content-security-policy","csp","middleware","php","php7","security"],"created_at":"2026-01-11T08:03:44.988Z","updated_at":"2026-01-11T08:03:45.909Z","avatar_url":"https://github.com/pavlakis.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/pavlakis/csp-middleware.svg)](https://travis-ci.org/pavlakis/csp-middleware)\n[![Total Downloads](https://img.shields.io/packagist/dt/pavlakis/csp-middleware.svg)](https://packagist.org/packages/pavlakis/csp-middleware)\n[![Latest Stable Version](https://img.shields.io/packagist/v/pavlakis/csp-middleware.svg)](https://packagist.org/packages/pavlakis/csp-middleware)\n[![codecov](https://codecov.io/gh/pavlakis/csp-middleware/branch/master/graph/badge.svg)](https://codecov.io/gh/pavlakis/csp-middleware)\n\n\n# CSP Middleware\n\nAdd Content-Security-Policy headers using PSR-7 requests. \nUses the [paragonie/csp-builder](https://github.com/paragonie/csp-builder) package.\n\n## Usage\n\nAdding the middleware is as simple as:\n\n```php\n\n$app-\u003eadd(new \\Pavlakis\\Middleware\\Csp\\CspMiddleware($container-\u003eget('csp'));\n\n```\n\nWhere `$container-\u003eget('csp')` returns an instance of `CSPBuilder` with a CSP configuration.\n\nThere is a second parameter `$reportOnly`. It is a boolean and set to `true` by default and it will add the CSP header as `Content-Security-Policy-Report-Only`. This is important so you don't break your application accidentally.\n\nTo enable it, pass `false`\n\n\nUse a `json` file with the csp policies.\n\nExample:\n\n```json\n{\n  \"report-only\": false,\n  \"report-uri\": \"/csp/enforce\",\n  \"base-uri\": [],\n  \"default-src\": [],\n  \"child-src\": {\n    \"self\": false\n  },\n  \"connect-src\": {},\n  \"font-src\": {\n    \"self\": true\n  },\n  \"form-action\": {\n    \"self\": true\n  },\n  \"frame-ancestors\": [],\n  \"img-src\": {\n    \"self\": true\n  },\n  \"media-src\": [],\n  \"object-src\": [],\n  \"plugin-types\": [],\n  \"script-src\": {\n    \"allow\": [\n      \"https://www.google-analytics.com\"\n    ],\n    \"self\": true,\n    \"unsafe-inline\": false,\n    \"unsafe-eval\": false\n  },\n  \"style-src\": {\n    \"self\": true,\n    \"unsafe-inline\": false\n  },\n  \"upgrade-insecure-requests\": true\n}\n\n```\n\n### Example in Slim3\n\n**Dependencies (dependencies.php)**\n\n```php\n\n$container['csp'] = function ($c) {\n    $csp = CSPBuilder::fromFile(__DIR__ . '/configs/csp.json');\n    return $csp;\n};\n\n```\n\n**Application Middleware (middleware.php)**\n\n```php\n\n$app-\u003eadd(new \\Pavlakis\\Middleware\\Csp\\CspMiddleware($container-\u003eget('csp'));\n\n```\n\n## Resources \n\nUseful resources for CSP\n\n* [CSP: Let's break stuff](https://www.slideshare.net/Brunty/content-security-policies-lets-break-stuff) - by [Matt Brunt (@brunty)](https://twitter.com/brunty)\n* [Report-Uri.io](https://report-uri.io/)\n* [Web Fundamentals - CSP](https://developers.google.com/web/fundamentals/security/csp/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpavlakis%2Fcsp-middleware","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpavlakis%2Fcsp-middleware","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpavlakis%2Fcsp-middleware/lists"}