Skip to content
Back to HTTP Security Headers

HTTP Security Headers

epo.org

epo.org has 6 of 10 security headers correctly configured — strong configuration that ranks in the top tier of the public scan corpus.

200 https://epo.org/
6 present 0 missing (critical) 0 missing (recommended)
HeaderValueNote
Content-Security-Policydefault-src 'self' data:; script-src 'self' 'unsafe-eval'...Prevents XSS and injection attacks
Strict-Transport-Securitymax-age=31536000; includeSubDomains; preloadForces HTTPS connections
X-Frame-OptionsSAMEORIGINPrevents clickjacking
X-Content-Type-OptionsnosniffPrevents MIME sniffing
Referrer-Policystrict-origin-when-cross-originControls referrer information
Permissions-PolicyNot setControls browser features
X-XSS-Protection1; mode=blockLegacy 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

Content-Security-Policy Details

style-src 'self' 'unsafe-inline' *.webspellchecker.net https://cdnjs.cloudflare.com/ajax/libs/cropper/4.0.0/cropper.min.css https://cdn.jsdelivr.net/gh/cferdinandi/tabby@12.0.3/dist/css/tabby-ui.min.css https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.12/codemirror.css https://cdn.jsdelivr.net/gh/NigelOToole/progress-tracker@v2.0.7/src/styles/progress-tracker.css https://storage.googleapis.com
img-src 'self' 'unsafe-inline' *.pixabay.com data: *.iconify.design *.ytimg.com *.google.com *.epo.org
frame-src *.youtube.com 'self' *.epo.org *.epoline.org *.powerbi.com *.sli.do *.slido.com
frame-ancestors 'self'
child-src blob:
font-src 'self' *.fontawesome.com *.webspellchecker.net data: https://storage.googleapis.com
connect-src 'self' *.fontawesome.com *.webspellchecker.net *.epo.org storage.googleapis.com *.friendlycaptcha.com *.googleapis.com
report-uri /report-csp-violation
default-src 'self' data:
script-src 'self' 'unsafe-eval' 'unsafe-inline' *.fontawesome.com https://unpkg.com *.webspellchecker.net *.epo.org *.jquery.com *.cloudflare.com *.jsdelivr.net *.googleapis.com
Show all response headers (28)
Cache-Control: max-age=31536000, public
Age: 131636
Vary: Accept-Encoding, Cookie
Referrer-Policy: strict-origin-when-cross-origin
Content-Type: text/html; charset=UTF-8
Cache-Tags: config:block_list config:block.block.epo_org_local_tasks config:block.block.epo_org_local_actions config:block.block.epo_org_help config:block.block.epo_org_messages config:block.block.epo_org_content config:block.block.languagedisclaimerfr config:block.block.breadcrumbs config:block.block.languagedisclaimervocabulary config:block.block.epo_org_websitesurveyen config:block.block.epo_org_websitesurveyde config:block.block.epo_org_websitesurveyfr config:block.block.epo_org_yipchapu config:block.block.searchbutton config:block.block.languagedropdownswitcher config:block.block.epo_org_footer config:block.block.epo_org_main_navigation config:block.block.hamburguerfixed config:block.block.user_icon config:block.block.languageswitcher_2 config:configurable_language_list config:block.block.epologo config:block.block.headersearchblock config:block.block.globalsearchheaderblock config:block.block.footermorelinks config:block.block.footerservicesupport config:block.block.homelogo config:block.block.megamenu config:block.block.mainnavigation_3 config:block.block.searchbarblock config:block.block.epo_org_languageswitcher_2 config:block.block.legaltextmegamenu config:block.block.legaltextmegamenuimage config:block.block.legaltextmegamenuencolumn1 block_content:314 config:block.block.legaltextsmegamenucolumn2en block_content:315 config:block.block.newseventsmegamenuleftcolumn block_content:10048 config:block.block.newseventsrightcolumnen block_content:10051 config:block.block.left_applying_for_a_patent_megamenu block_content:18178 config:block.block.right_applying_megamenu block_content:18181 config:block.block.left_lawandpractice_megamenu_en block_content:18472 config:block.block.left_about_us_en block_content:18184 config:block.block.left_learning_megamenu block_content:18190 config:block.block.left_searching_for_patents_megamenu_en block_content:18196 config:block.block.right_about_us_megamenu block_content:18187 config:block.block.right_applying_megamenu_2 config:block.block.right_lawandpractice_megamenu_en block_content:18475 config:block.block.right_learning_en block_content:18193 config:block.block.right_searching_for_patents_megamenu_en block_content:18199 config:block.block.footer config:block.block.footer_more_links config:block.block.footer_service_support config:block.block.views_block__social_media_footer_menu_social_media_footer_menu_2 config:block.block.epo_org_extra config:simple_popup_blocks.popup_launch_popup node:1 config:eu_cookie_compliance.settings config:cookie_category_list block_view config:system.menu.footer node:447409 node:446611 term_list:social_media_channels config:views.view.social_media_footer_menu taxonomy_term:65998 taxonomy_term:65995 taxonomy_term:65992 taxonomy_term:65989 taxonomy_term:65986 taxonomy_term_view config:core.entity_view_display.taxonomy_term.social_media_channels.teaser config:system.menu.footer---more-links node:104359 node:494116 node:285091 config:system.menu.footer---service-support node:323278 node:492238 node:492229 node:497878 node:54316 node:742198 node:323350 node:104874 node:447610 node:447616 node_view config:core.entity_view_display.node.landing_page.full block_content:23407 block_content_view config:core.entity_view_display.block_content.basic.default config:filter.format.full_html block_content:25009 media_view media:33190 config:core.entity_view_display.media.image.original_dimensions_no_blazy config:image.style.original_dimensions file:68290 block_content:23401 media:34161 file:75915 block_content:23404 media:32227 file:58675 block_content:23395 media:37511 file:122875 block_content:23392 config:core.entity_view_display.block_content.simple_title.default config:filter.format.basic_html block_content:23389 block_content:23386 block_content:23383 block_content:23380 node_list:video config:views.view.epo_videos node:1362764 node:1362697 node:1362794 node:1362962 slick:0d704271fa0.4 taxonomy_term:53119 media:37906 config:core.entity_view_display.media.remote_video.ratio_16_9_400x225px config:media.settings taxonomy_term:53029 taxonomy_term:54352 media:37822 taxonomy_term:358 media:37942 taxonomy_term:53126 media:38023 block_content:23371 node_list:event config:views.view.events_overview node:1361549 node:1361548 slick:b9f1198cc50.2 taxonomy_term:53151 taxonomy_term:71512 taxonomy_term:53147 media:34831 config:core.entity_view_display.media.image.ratio_3_1_600x200px taxonomy_term:53099 taxonomy_term:71497 taxonomy_term:53148 media:4645 slick:a2b7b348b42.2 block_content:23368 block_content:23365 block_content:23359 config:views.view.related_items_slider config:search_api.index.epo_search_related_items_slider search_api_list:epo_search_related_items_slider slick:e6a7c131048.8 node:1362936 node:1362944 node:1362959 node:1362960 node:1362961 node:1362969 node:1362970 node:1362974 config:core.entity_view_display.block_content.related_items_slider.default block_content:27537 block_content:27538 block_content:23356 block_content:23353 block_content:23350 block_content:23347 block_content:23344 block_content:23341 block_content:28486 block_content:31094 block_content:26043 block_content:31796 block_content:28863 block_content:31832 slick:788f74d6682.6 config:core.entity_view_display.block_content.hero_banner.full media:38005 media:34988 media:34671 media:36559 media:37559 media:38022 config:core.entity_view_display.block_content.hero_banner_carousel.default config:system.site local_task config:workflows.workflow.editorial config:fixed_block_content.fixed_block_content.hamburguer_fixed block_content:2 config:system.menu.main node:476911 node:323290 node:323347 node:323479 node:323539 node:323296 node:415669 node:323395 node:323293 node:323536 node:480913 node:285121 node:285124 node:285184 node:446626 node:323230 node:446629 node:285217 node:1101723 node:1267832 node:285196 node:446632 node:446635 node:285250 node:285127 node:285268 node:446638 node:446641 node:446644 node:446647 node:446677 node:285274 node:56369 node:323257 node:446680 node:285289 node:285130 node:322993 node:877501 node:446683 node:285133 node:1255410 node:322996 node:867850 node:446686 node:323047 node:323101 node:323137 node:323140 node:323143 node:323155 node:323164 node:323173 node:323077 node:323179 node:323182 node:323197 node:446689 node:446692 node:1128280 node:1361304 node:1361478 node:1361479 node:1361480 node:1360323 node:1360659 node:1360660 node:1360661 node:1360662 node:1348978 node:1356360 node:1356361 node:1356362 node:1179317 node:1179319 node:1179320 node:1148028 node:1148403 node:1148405 node:992317 node:1011769 node:1011772 node:1011775 node:1011778 node:511117 node:511120 node:511123 node:511126 node:511129 node:323113 node:447211 node:447214 node:447217 node:1362324 node:323116 node:447232 node:511078 node:511081 node:511084 node:511087 node:447235 node:511090 node:511093 node:511096 node:511099 node:511102 node:511105 node:511108 node:511111 node:511114 node:447244 node:323203 node:446695 node:446698 node:446701 node:446704 node:446707 node:446710 node:446713 node:446716 node:446719 node:446803 node:323233 node:105395 node:446806 node:446809 node:285190 node:285292 node:323254 node:446815 node:446818 node:323398 node:486571 node:447025 node:447022 node:447019 node:446821 node:323092 node:446824 node:446827 node:446830 node:446833 node:446836 node:446839 node:446842 node:1189931 node:446848 node:1362568 node:446851 node:446854 node:323380 node:323383 node:838474 node:446857 node:446860 node:446863 node:446866 node:446869 node:446872 node:446875 node:446878 node:446881 node:323131 node:715237 node:505426 node:1157467 node:323389 node:1128281 node:323215 node:789682 node:447004 node:323284 node:447007 node:534040 node:323470 node:323797 node:447040 node:407326 node:447046 node:447049 node:447043 node:571075 node:571078 node:407329 node:413782 node:413785 node:415672 node:447013 node:516805 node:447010 node:447055 node:1361169 node:1361153 node:1361154 node:541567 node:541570 node:54318 node:465547 node:285094 node:285103 node:447058 node:447061 node:447064 node:447067 node:447070 node:447073 node:447076 node:447079 node:447082 node:513016 node:285106 node:492211 node:285109 node:285112 node:1314950 node:447091 node:910492 node:503536 node:499768 node:447094 node:447097 node:285115 node:447100 node:514900 node:1156160 node:285118 node:1360309 node:447103 node:447106 node:285097 node:465550 node:447181 node:285100 node:447184 node:447187 node:447190 node:972361 node:998182 node:365026 node:285085 node:105393 node:285028 node:323683 node:365005 node:323287 node:323461 node:323317 node:1362275 node:1362367 node:381967 node:1360839 node:1165320 node:836491 node:1277009 node:1277010 node:1156809 node:1156810 node:1157454 node:1359836 node:1359924 node:323686 node:104360 node:285298 node:446602 node:446605 node:447625 node:323710 node:391396 node:17674 node:431548 node:323071 node:1162034 node:1360774 node:1329357 node:1162035 node:447208 node:323074 node:447196 node:447199 node:447202 node:447205 node:447223 node:447247 node:447250 node:447253 node:447256 node:447634 node:447259 node:447262 node:447265 node:447268 node:447271 node:530260 node:530263 node:530266 node:530269 node:447274 node:447277 node:447280 node:447283 node:447286 node:1362295 node:1362310 node:1362311 node:1362312 node:1362314 node:447307 node:447310 node:447313 node:447193 node:323119 node:558655 node:1194380 node:1194381 node:1194382 node:1195028 node:556726 node:1197633 node:1351600 node:1362032 node:1362033 node:1362334 node:1362335 node:1198281 node:1198282 node:1198294 node:1199593 node:1197634 node:54317 node:1199594 node:556723 node:1362476 node:1359793 node:1207419 node:564964 node:565018 node:565252 node:1204816 node:564661 node:1208718 node:1208719 node:1209368 node:1210943 node:1202855 node:1203502 node:1203503 node:1203505 node:1203506 node:1203518 node:1203519 node:1204165 node:1204166 node:1204167 node:1204169 node:1204815 node:1208067 node:1208990 node:1209367 node:1209369 node:1209370 node:1209371 node:1210940 node:1211589 node:1211590 node:564673 node:1212236 node:1136063 node:744154 node:1212237 node:1212896 node:564676 node:797479 node:799393 node:564679 node:564682 node:1212900 node:801343 node:1210937 node:799399 node:799396 node:1212246 node:1212894 node:1212902 node:1197632 node:1203504 node:1203125 node:1266527 node:1362454 node:323161 node:516811 node:323299 node:951121 node:765346 node:891019 node:892930 node:892933 node:892936 node:894931 node:892942 node:892945 node:892951 node:892954 node:892960 node:892963 node:892948 node:892969 node:894934 node:894940 node:894937 node:894943 node:894955 node:894946 node:894949 node:894952 node:894967 node:894958 node:894961 node:894970 node:894964 node:898867 node:898870 node:767260 node:898873 node:904675 node:902755 node:902764 node:902761 node:892957 node:902758 node:892939 node:904678 node:892966 node:753721 node:945247 node:447319 node:323260 node:447322 node:447325 node:447328 node:447331 node:447334 node:323263 node:447337 node:1362838 node:1359660 node:1166619 node:518689 node:447340 node:447343 node:447346 node:447349 node:447352 node:447355 node:447358 node:447361 node:447364 node:447367 node:564094 node:323266 node:447379 node:447382 node:447385 node:447388 node:447391 node:447394 node:323272 node:447397 node:1002091 node:1103019 node:1103678 node:1105634 node:1105635 node:1105636 node:447400 node:323275 node:447412 node:323473 node:1160717 node:1254051 node:1162725 node:1162724 node:1162726 node:1162727 node:1175106 node:558646 node:447487 node:447490 node:1176440 node:1040905 node:447493 node:447502 node:447496 node:447499 node:447505 node:494122 node:323305 node:447415 node:717244 node:726715 node:744157 node:746053 node:746056 node:742150 node:746095 node:746098 node:746101 node:746104 node:742147 node:746059 node:746062 node:746065 node:850792 node:742153 node:746107 node:746110 node:746113 node:746116 node:447418 node:1106930 node:1103676 node:744136 node:744142 node:744148 node:744151 node:447430 node:1362559 node:829624 node:447436 node:447439 node:447442 node:447445 node:447565 node:447580 node:447583 node:447568 node:447571 node:447574 node:1282251 node:447595 node:558658 node:1285515 node:447598 node:447586 node:447421 node:323308 node:447448 node:447451 node:447454 node:447457 node:447460 node:446599 node:323341 node:447466 node:532156 node:547225 node:396013 node:1360097 node:1359923 node:1360098 node:1360497 node:1360511 node:1360551 node:1360489 node:1360562 node:1360101 node:1360785 node:1361534 node:1359861 node:1359911 node:1360052 node:1361408 node:1360060 node:1360564 node:1359849 node:1267174 node:1290786 node:1290788 node:1290787 node:1359891 node:1359892 node:1359935 node:1362482 node:1361697 node:1361196 node:1360100 node:1362570 node:1362586 node:1362587 node:1362588 node:1362610 node:1361197 node:1361265 node:396016 node:828454 node:1361425 node:1361426 node:1361427 node:1361428 node:1361429 node:810970 node:323377 node:413767 node:1362677 node:1362678 node:1362679 node:1362680 node:1362681 node:1362682 node:1362683 node:1360216 node:1360217 node:1360218 node:1360236 node:1360237 node:1360238 node:1360239 node:1160713 node:1160714 node:1160715 node:1169238 node:1169507 node:1160716 node:1169884 node:1169885 node:1169886 node:1169888 node:484666 node:556717 node:556720 node:558649 node:558667 node:560548 node:560551 node:560554 node:413779 node:413788 node:415666 node:415675 node:415678 node:415681 node:323344 node:18205 node:1361821 node:1361923 node:1361924 node:1361925 node:1361836 node:1361898 node:1361902 node:1361904 node:1361905 node:1361906 node:1361907 node:1361908 node:1361909 node:1361910 node:1361912 node:1361913 node:1361914 node:1361915 node:1361916 node:1362107 node:1361900 node:1361917 node:1361918 node:1361919 node:1361901 node:1361920 node:1361921 node:1361922 node:1111457 node:447514 node:447517 node:323392 node:323098 node:323122 node:323185 node:323188 node:323194 node:323671 node:284977 node:376330 node:285046 node:285031 node:285055 node:285049 node:378208 node:365023 node:795466 node:795469 node:1222041 node:1222042 node:1222043 node:1222044 node:1222045 node:1222046 node:1222047 node:1222048 node:1222049 node:795490 node:795493 node:795499 node:1217473 node:795502 node:795505 node:795520 node:795523 node:892993 node:1199607 node:715258 node:715234 node:715243 node:1328045 node:447118 node:447175 node:447133 node:447130 node:285193 node:447109 node:492223 node:447112 node:447115 node:447136 node:447139 node:447142 node:447145 node:447148 node:447154 node:447157 node:447160 node:447163 node:447166 node:105394 node:447121 node:447169 node:1246178 node:1362561 node:285271 node:447172 node:1361504 node:323281 node:1269807 node:447526 node:447532 node:447535 node:447529 node:447538 node:447541 node:447544 node:447547 node:447550 node:447553 node:447556 node:447559 node:323452 node:323455 node:104875 node:104876 node:104880 node:906658 config:fixed_block_content.fixed_block_content.search_bar_block block_content:21514 config:system.menu.megamenu config:tb_megamenu.menu_config.megamenu__epo_org media:37441 config:core.entity_view_display.media.image.ratio_3 config:image.style.ratio_3_1 file:122577 media:35146 file:85112 file:64978 media:35126 file:84852 file:54646 media:36063 file:112243 config:fixed_block_content.fixed_block_content.home_logo block_content:2272 config:fixed_block_content.fixed_block_content.epo_logo block_content:155 rendered http_response config:user.role.anonymous
X-Cache: HIT
X-Frame-Options: SAMEORIGIN
Server: cloudflare
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Set-Cookie: __cf_bm=8ySKe.22u8YhpBNDWdQbuokmJ_1AKniP2cGfaPsLb.w-1786900818.0639837-1.0.1.1-qt_42YcH7Y57CPFPHY4fnAfB0AOpr1q_LUR2VTBOmSBlRxaOJy9.5s6QycxRPSZdWaqJsQevF5fiGGy7x7sQ8IyWkhzdD.VYgNl1eFUHZXATjBF5tJZO73LXI3QaC.Rx; HttpOnly; SameSite=None; Secure; Path=/; Domain=epo.org; Expires=Sun, 16 Aug 2026 17:50:18 GMT
X-Content-Type-Options: nosniff
X-Drupal-Dynamic-Cache: UNCACHEABLE (poor cacheability)
X-Drupal-Cache: HIT
Connection: keep-alive
X-Cache-Hits: 39853
X-Envoy-Upstream-Service-Time: 4
X-Xss-Protection: 1; mode=block
Cf-Ray: a2c21be0ea5e3ccf-CDG
Content-Security-Policy: default-src 'self' data:; script-src 'self' 'unsafe-eval' 'unsafe-inline' *.fontawesome.com https://unpkg.com *.webspellchecker.net *.epo.org *.jquery.com *.cloudflare.com *.jsdelivr.net *.googleapis.com; style-src 'self' 'unsafe-inline' *.webspellchecker.net https://cdnjs.cloudflare.com/ajax/libs/cropper/4.0.0/cropper.min.css https://cdn.jsdelivr.net/gh/cferdinandi/tabby@12.0.3/dist/css/tabby-ui.min.css https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.12/codemirror.css https://cdn.jsdelivr.net/gh/NigelOToole/progress-tracker@v2.0.7/src/styles/progress-tracker.css https://storage.googleapis.com; img-src 'self' 'unsafe-inline' *.pixabay.com data: *.iconify.design *.ytimg.com *.google.com *.epo.org; frame-src *.youtube.com 'self' *.epo.org *.epoline.org *.powerbi.com *.sli.do *.slido.com; frame-ancestors 'self'; child-src blob:; font-src 'self' *.fontawesome.com *.webspellchecker.net data: https://storage.googleapis.com; connect-src 'self' *.fontawesome.com *.webspellchecker.net *.epo.org storage.googleapis.com *.friendlycaptcha.com *.googleapis.com; report-uri /report-csp-violation
X-Varnish: 1560819 98328
Cf-Cache-Status: DYNAMIC
Date: Sun, 16 Aug 2026 17:20:18 GMT
Content-Language: en
X-Generator: Drupal 10 (https://www.drupal.org)
Alt-Svc: h3=":443"; ma=86400
Last-Modified: Fri, 14 Aug 2026 16:22:41 GMT
Expires: Sun, 19 Nov 1978 05:00:00 GMT

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 epo.org

Share this result: