Skip to content
Back to HTTP Security Headers

HTTP Security Headers

poetryfoundation.org

poetryfoundation.org has 0 of 10 security headers correctly configured, most notably Content-Security-Policy — addressing the critical findings flagged below will move it into the strong tier.

200 https://poetryfoundation.org/
0 present 2 missing (critical) 3 missing (recommended)
HeaderValueNote
Content-Security-PolicyNot setPrevents XSS and injection attacks
Strict-Transport-SecurityNot setForces HTTPS connections
X-Frame-OptionsNot setPrevents clickjacking
X-Content-Type-OptionsNot setPrevents MIME sniffing
Referrer-PolicyNot setControls referrer information
Permissions-PolicyNot setControls browser features
X-XSS-ProtectionNot setLegacy XSS filter (deprecated)
Cross-Origin-Opener-PolicyNot setIsolates browsing context
Cross-Origin-Embedder-PolicyNot setControls cross-origin embedding
Cross-Origin-Resource-PolicyNot setControls cross-origin resources
Show all response headers (12)
Server: cloudflare
X-Cache: HIT
Content-Type: text/html;charset=utf-8
Age: 971
X-Powered-By: Nuxt
X-Cache-Tag: entryType:20 section:4 uri:__home__ entryType:7 section:34 uri:articles/1816395/i-multiplied-myself-to-feel-myself uri:articles/145096/inside-ourselves uri:articles/153999/thinking-is-a-sickness-of-the-eyes entryType:39 section:25 uri:people/richard-fegelman uri:articles/1814812/apparent-magic uri:people/robert-rubsam entryType:6 section:16 uri:poetrymagazine/poems/1803802/june-12-in-prison uri:poets/kerima-tariman uri:poets/amanda-socorro-l-echanis entryType:14 section:21 uri:categories/subjects uri:categories/social-commentaries uri:categories/incarceration-justice uri:categories/arts-sciences uri:categories/language-linguistics uri:categories/poetry-poets uri:categories/poetic-terms uri:categories/types-modes uri:categories/series-sequence uri:poetrymagazine/poems/1803740/bark-archive-splinter-disrespecting-private-property uri:poets/jay-g-ying uri:categories/nature uri:categories/plants-fungi uri:categories/the-mind uri:categories/doubt uri:poetrymagazine/poems/1803808/tombstones-are-greedy uri:poets/sarah-mkhonza uri:categories/love uri:categories/heartache-loss uri:categories/living uri:categories/death-dying uri:categories/mobile-moods uri:categories/grief uri:categories/loneliness entryType:4 section:13 uri:audio/1819988/on-my-way-to-god uri:articles/1811771/between-a-star-and-a-boat entryType:50 section:18 uri:podcasts/series/74636/poetryofftheshelf uri:articles/1816485/meet-our-grantee-partner-glassless-minds-open-mic-and-writing-workshop-series uri:articles/1815505/poetry-foundation-announces-the-2026-ruth-lilly-and-dorothy-sargent-rosenberg-poetry-fellows uri:poetrymagazine/articles/1690415/wind-crossing-grasses-poems-from-chinas-dragon-rivers uri:poets/wang-ping uri:collections/101589/asian-american-voices-in-poetry uri:poetrymagazine/poems/1731677/mira-with-sarcasm uri:poets/mirabai uri:collections/145134/love-poems uri:poets/chloe-martinez uri:categories/religion uri:categories/hinduism uri:poetrymagazine/poems/1779640/enter-tears uri:poets/dalia-taha uri:poets/sara-elkamel uri:audio/160204/nights uri:categories/war-conflict uri:categories/history-politics uri:categories/reading-books uri:categories/prose-poem uri:poetrymagazine/articles/1771701/on-translating-sylvie-kande uri:poetrymagazine/poems/1764324/colophon-i uri:poetrymagazine/poems/1764322/colophon-i uri:poetrymagazine/poems/1764328/loeuf-et-la-pierre uri:poetrymagazine/poems/1764326/the-egg-and-the-stone uri:poets/nancy-naomi-carlson uri:articles/1721319/poets-on-translation-mother-tongues uri:articles/1668521/poets-on-translation-relative-pitch uri:articles/1685754/poets-on-translation-otherwise-the-same uri:articles/1714225/poets-on-translation-mystery-and-pluck uri:articles/1659311/poets-on-translation-the-alternative-speaker uri:articles/1681307/poets-on-translation-attuned-to-the-echoes uri:articles/1731411/poets-on-translation-vemod-or-woe-mood uri:articles/1696445/poets-on-translation-putting-the-verse-in-the-fruit uri:articles/1706573/poets-on-translation-translating-titles-or-the-thief-who-robbed-another-thief uri:poets/cintia-santana uri:poetrymagazine/poems/1731685/mira-should-have-known-better uri:categories/relationships uri:categories/breakups-separation uri:audio/1737883/miras-over-it uri:poetrymagazine/articles/1734211/on-translating-mira-again uri:poetrymagazine/poems/1731675/untitled uri:poetrymagazine/poems/1731681/untitled uri:poetrymagazine/poems/1731679/miras-over-it uri:poetrymagazine/poems/1731683/untitled uri:categories/geography uri:categories/north-america uri:categories/u-s-midwestern entryType:16 section:15 uri:video/1813869/where-i-write-jamila-woods uri:video/series/1784164/where-i-write uri:poetrymagazine/poems/58058/daddy-dozens uri:audio/76930/april-2015-cast-poems-in-the-river-and-tell-them-you-remember uri:audio/143885/jamila-woods-reads-daddy-dozens uri:poets/jamila-woods uri:collections/159875/poetry-and-form uri:collections/158265/110-years-ofpoetrymagazine uri:collections/148663/poetry-and-music uri:collections/101640/celebrating-black-history-month uri:articles/148252/before-we-begin uri:events/74309/dark-noise-fatimah-asghar-franny-choi-nate-marshall-aaron-samuels-danez-smith-jamila-woods uri:events/74139/invisible uri:audio/148754/jamila-woods-vs-the-remedy uri:audio/154027/john-murillo-vs-the-business uri:audio/148556/kara-jackson-vs-titles uri:events/90375/the-open-door-readings-october-57aa552da8bc4 uri:audio/149401/pat-frazier-vs-solitude uri:events/74201/poetry-fall-party uri:events/74063/pop-up-poetry-jamila-woods uri:video/142394/we-real-cool uri:audio/151561/xandria-phillips-vs-digging-vs-running uri:categories/realistic-complicated uri:categories/family-ancestors uri:categories/home-life uri:categories/philosophy uri:categories/meters uri:categories/free-verse uri:categories/insecurity uri:categories/disappointment uri:poets/kevin-coval uri:poets/avery-young uri:podcasts/series/142241/vs-podcast uri:categories/u-s-western uri:poetrymagazine/poems/1803746/my-inescapable-fate uri:poets/matthew-zapruder uri:collections/145091/poetry-and-food uri:blog/open-door/70612/the-bagley-wright-lecture-series-a-conversation-with-matthew-zapruder uri:articles/69457/2000-2009-the-decade-in-poetry uri:articles/148301/among-tyrants uri:audio/77206/april-snow-56d3350cc439c uri:audio/77207/as-i-cross-the-heliopause-at-midnight-i-think-of-my-mission-56d3350d027c3 uri:articles/145325/details-5a4cf22e05a1f uri:audio/77209/erstwhile-harbinger-auspices-56d3350d69ab7 uri:audio/145345/graduation-day uri:audio/145344/graduation-day-5a538d8f53534 uri:articles/157809/maybe-he-is-a-comet uri:articles/68682/miles-to-go-before-we-sleep uri:audio/75815/nothing-plus-the-idea-of-chocolate uri:audio/151787/the-point-of-poetry uri:audio/77210/the-prelude-56d3350da536e uri:audio/77208/schwinn-56d3350d358a2 uri:articles/74572/verticism uri:audio/75311/what-if-it-doesnt-make-sense uri:categories/popular-culture uri:categories/coming-of-age uri:categories/time-brevity entryType:5 uri:articles/69287/show-your-work uri:poets/rae-armantrout uri:poets/brenda-hillman uri:categories/canada uri:poetrymagazine/poems/145167/the-hermits uri:poets/karen-solie uri:articles/158419/banquet-of-ash uri:poetrymagazine/articles/70263/in-transit-the-poetry-of-karen-solie uri:audio/76979/may-2015-you-dont-go-to-visit-the-seaside-but-the-seaside-visits-you uri:categories/the-spiritual uri:articles/1804005/this-have-not-province uri:people/dustin-illingworth uri:poets/jim-johnstone entryType:41 section:8 uri:poem-of-the-day/loony-bin-basketball uri:poetrymagazine/poems/1803716/marriage-mason-jar entryType:31 section:23 uri:poetrymagazine/issue/1803684/july-august-2026 uri:poets/quinn-franzen uri:audio/1807327/marriage-mason-jar uri:poetrymagazine/poems/1803690/in-minneapolis uri:poets/tarik-dobbs uri:collections/159065/disability-poetry-and-poetics uri:audio/159371/the-fifteen-year-old-considers-his-closet uri:audio/158029/nub uri:audio/155979/poem-where-every-bird-is-a-drone uri:articles/158671/poetry-foundation-announces-the-2022-ruth-lilly-dorothy-sargent-rosenberg-poetry-fellows uri:audio/158030/reflection-in-stainless-steel-mirror-diorama-with-accordion-fold uri:video/158027/torrin-a-greathouse-reads-poem-where-every-bird-is-a-drone-by-tarik-dobbs uri:categories/class-labor uri:poetrymagazine/poems/1803692/january-afternoon uri:poets/daniel-durand uri:people/jordan-landsman uri:categories/aging-2 uri:poetrymagazine/poems/1803706/beast uri:poets/elena-croitoru-reed uri:categories/activities uri:categories/jobs-working uri:categories/pessimism uri:poetrymagazine/issue/1795631/june-2026 uri:poetrymagazine/poems/1795745/fighting-weight uri:poets/tomas-q-morin uri:collections/144542/us-latinx-voices-in-poetry uri:audio/76752/december-2013-bring-a-poetry-book uri:audio/76884/goosestep uri:audio/76894/love-train uri:audio/76895/nature-boy uri:audio/76896/prophesy uri:audio/76899/stanza uri:audio/162147/stunt-double uri:categories/the-body uri:categories/health-illness uri:categories/sports-outdoor-activities uri:poetrymagazine/poems/1795751/bella-notte uri:poets/gilad-jaffe uri:categories/landscapes-pastorals uri:poetrymagazine/poems/1795641/play-cousins uri:poets/nicole-adabunu uri:categories/travels-journeys uri:poetrymagazine/issue/1786546/may-2026 uri:poetrymagazine/poems/1786552/god-of-song uri:poets/tracy-k-smith uri:collections/101579/anti-love-poems uri:collections/150160/poems-about-motherhood uri:collections/149006/its-complicated uri:collections/144265/poems-on-immigration uri:collections/142028/poems-of-hope-and-resilience uri:collections/101719/love-poems-from-poetry-magazine uri:collections/101690/blockbuster-movie-poems uri:articles/147279/agents-of-imagination uri:audio/147537/declaration uri:audio/150143/derrick-harriell-vs-the-clock uri:audio/147540/garden-of-eden uri:audio/148213/kimiko-hahn-vs-portals uri:video/77371/life-on-mars-space-exploration-through-poetry uri:audio/147539/an-old-story uri:audio/147495/retelling-the-american-story uri:articles/144940/toronto-specials-5a13521da98f3 uri:categories/birth-infancy uri:categories/parenthood uri:categories/pregnancy uri:categories/contentment uri:poetrymagazine/poems/1786556/from-below uri:poets/carl-phillips uri:collections/155298/poetry-and-racial-justice-and-equality uri:collections/101691/queer-love-poems uri:collections/144686/lgbtq-pride-poems uri:collections/146367/poetry-and-the-civil-rights-movement uri:collections/148936/an-introduction-to-the-black-arts-movement uri:audio/155590/ada-limon-vs-epiphany uri:audio/154294/airea-d-matthews-vs-what-haunts uri:audio/153993/archery uri:video/151386/carl-phillips-reads-effort-at-speech-between-two-people uri:audio/153994/entire-known-world-so-far uri:audio/156370/fred-sasaki-interviews-ashley-m-jones uri:articles/159649/hymns-thingness-broth uri:audio/146363/jamaal-may-vs-the-multiverse uri:audio/77041/june-2015-you-dont-mean-any-harm uri:audio/146623/kaveh-akbar-vs-bewilderment uri:audio/76811/lustrum uri:audio/153998/of-the-shining-underlife uri:audio/149312/vs-ep-31-paul-tran-vs-the-past uri:audio/76812/radiance-versus-ordinary-light uri:audio/160945/richie-hofmann-and-cindy-juyoung-ok-on-erotic-turmoil-and-more uri:audio/156973/suzi-f-garcia-in-conversation-with-taylor-johnson uri:audio/154001/then-the-war uri:audio/160354/mia-s-willis-vs-the-black-proverb-645e4fe26a214 uri:audio/91574/poetry-magazine-weekly-podcast-for-december-26-2016-carl-phillips-on-poetry-and-politics uri:categories/perception uri:categories/hope-optimism uri:poetrymagazine/poems/1786652/cooking-gas-commercial uri:poets/migwi-mwangi uri:poetrymagazine/issue/1779528/april-2026 uri:poetrymagazine/poems/1779580/mask-of-khonsu uri:poets/matthew-shenoda uri:events/74040/a-celebration-of-international-poetry-new-generation-african-poets-amy-lukau-tsitsi-jaji-ladan-osman-viola-allo-warsan-shire uri:audio/76724/chris-abani-international-poets-in-conversation uri:audio/76758/gabeba-baderoon-international-poets-in-conversation uri:audio/76640/kwame-dawes-international-poets-in-conversation uri:audio/155815/ladan-osman-vs-changing-your-life uri:audio/76780/matthew-shenoda-international-poets-in-conversation uri:events/73616/the-open-door-readings-december uri:categories/mythology-folklore uri:poetrymagazine/poems/1779588/grief-lessons uri:poets/emily-skaja uri:categories/mourning uri:poetrymagazine/poems/1779590/a-room-of-its-own uri:poets/kate-colby uri:audio/151974/beside-the-mind-a-discussion-of-clairvoyant-journal-by-hannah-weiner uri:audio/92461/i-mean-only-means-a-discussion-of-kate-colby39s-i-mean uri:audio/154885/promise-to-go-on-a-discussion-of-the-similitude-of-this-great-flower-by-elizabeth-willis uri:audio/156636/punch-fascists-a-discussion-of-yes-i-do-want-to-punch-by-stephen-collis uri:audio/151400/september-1941-a-discussion-of-memory-tree-by-rosmarie-waldrop uri:audio/154373/word-for-word-a-discussion-of-the-poem-that-took-the-place-of-a-mountain-by-wallace-stevens uri:audio/145442/world-without-sequence-a-discussion-of-ann-lauterbach39s-poem-under-the-sign,nitro-cache,path:/,host:www.poetryfoundation.org
Connection: keep-alive
Last-Modified: Sun, 16 Aug 2026 17:13:49 GMT
Date: Sun, 16 Aug 2026 17:30:00 GMT
Cf-Ray: a2c22a1afb846639-AMS
Cf-Cache-Status: HIT
Cache-Control: public, maxage=0, s-maxage=3600

Want the full picture?

This is just one of 100+ checks BeaverCheck runs in a full website audit.

Run Full Audit →

How we grade the results

Each header receives one of three grades: pass (present with a correct, current-best-practice value), warning (present but with a value that is outdated, insufficient, or contains a known weakness), or critical (missing entirely in a context where it should be set). The weighting reflects real-world impact: missing CSP and HSTS on a production HTTPS site are the most severe findings, while a missing Permissions-Policy on a static marketing page is a warning rather than critical. We do not penalize headers that are intentionally absent for a documented reason — for example, X-Frame-Options is now redundant when a CSP frame-ancestors directive is set, and we credit the CSP path. The scoring also adapts to the response: a 301 redirect that ships only the minimum subset of headers is treated differently from a 200 HTML response that should carry the full set. All grading rules are deterministic and visible in the source repository, and the same evaluator runs across both this free tool and the full audit pipeline so results are consistent either way.

Common findings on real sites

Across thousands of public scans, four patterns repeat. First, missing Content-Security-Policy is the most common critical finding — more than half of audited sites ship no CSP at all, leaving inline scripts and event handlers vulnerable to XSS injection. Second, HSTS is often present but configured weakly: a max-age below six months, missing includeSubDomains, or absent from the preload list — meaning the first visit to a subdomain still happens over plaintext. Third, X-Content-Type-Options: nosniff is missing on a surprising number of API responses, allowing MIME-sniffing attacks where a JSON endpoint is reinterpreted as JavaScript by a malicious referring page. Fourth, Permissions-Policy is the newest header and the least adopted: most sites do not deny access to the 10+ powerful browser APIs even when they never use any of them, leaving an XSS-compromised page free to silently activate the user's microphone or geolocation. A site that passes all four checks ends up in the top 5% of the public scan corpus, which is a much stronger signal than a single header grade in isolation.

How to add the missing headers

Most security headers are one line to add. For Nginx, set them in the server or http block with the add_header directive — for example: add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always. The 'always' parameter is important — without it, Nginx skips the header on non-200 responses, leaving error pages unprotected. For Apache, use Header set inside a Directory or VirtualHost block. For Express.js, the helmet middleware sets the full security-header set with sensible defaults in three lines: install helmet, require it, and add app.use(helmet()) before any route. For Cloudflare, the Transform Rules dashboard exposes every header without redeploying — useful for setting CSP and HSTS on origins you do not control. The trickiest header is Content-Security-Policy: a wrong value breaks the page silently, so always start in report-only mode (Content-Security-Policy-Report-Only) for at least a week before switching to enforcement. Use the report-uri or report-to directive to collect violation reports, fix what your application legitimately needs, then promote to enforcing mode. The CSP details panel in this tool's report breaks each directive out separately so you can see exactly which sources your site allows today.

Why these headers actually matter

Security headers are the lowest-effort, highest-impact defense most sites can deploy — they cost nothing to add and they neutralize entire classes of attack at the browser boundary, before your application code runs. CSP turns XSS from a near-total compromise into a logged violation report you can investigate at leisure. HSTS prevents the SSL-stripping attacks that defeat HTTPS on hostile networks, including the rogue Wi-Fi access points common at conferences and coffee shops. X-Frame-Options and frame-ancestors block clickjacking, where an attacker embeds your authenticated UI in a transparent iframe and tricks users into clicking destructive actions. The Cross-Origin trio (COOP, COEP, CORP) was added specifically to mitigate Spectre and Meltdown speculative-execution side channels — without them, a malicious cross-origin embed can read your tab's memory through timing attacks. Permissions-Policy is the youngest header but arguably the most important: a single XSS bug in a page that explicitly allows camera access lets an attacker turn the user's webcam on without UI feedback. None of this replaces other defenses (input validation, parameterized queries, dependency hygiene), but it does buy enormous defense-in-depth at near-zero implementation cost.

Other reports for poetryfoundation.org

Share this result: