Skip to content

Commit 247bce4

Browse files
committed
Feature: 1 new insecure check
Cross-Origin-Opener-Policy-Report-Only - No Valid Directives
1 parent 1c609b8 commit 247bce4

File tree

5 files changed

+86
-65
lines changed

5 files changed

+86
-65
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<a target="_blank" href="https://devguide.python.org/versions/" title="Minimum Python version required to run this tool"><img src="https://img.shields.io/badge/Python-%3E%3D3.9-blue?labelColor=343b41"></a>
77
<a target="_blank" href="LICENSE" title="License of this tool"><img src="https://img.shields.io/badge/License-MIT-blue.svg?labelColor=343b41"></a>
88
<a target="_blank" href="https://github.com/rfc-st/humble/releases" title="Latest release of this tool"><img src="https://img.shields.io/github/v/release/rfc-st/humble?display_name=release&label=Latest%20Release&labelColor=343b41"></a>
9-
<a target="_blank" href="https://github.com/rfc-st/humble/commits/master" title="Latest commit of this tool"><img src="https://img.shields.io/badge/Latest_Commit-2025--04--04-blue.svg?labelColor=343b41"></a>
9+
<a target="_blank" href="https://github.com/rfc-st/humble/commits/master" title="Latest commit of this tool"><img src="https://img.shields.io/badge/Latest_Commit-2025--04--05-blue.svg?labelColor=343b41"></a>
1010
<a target="_blank" href="https://pkg.kali.org/pkg/humble" title="Official tool in Kali Linux"><img src="https://img.shields.io/badge/Kali%20Linux-Tool-blue?labelColor=343b41"></a>
1111
<br />
1212
<a target="_blank" href="#" title="Featured on:"><img src="https://img.shields.io/badge/Featured%20on:-343b41"></a>
@@ -63,7 +63,7 @@
6363
:heavy_check_mark: 58 [checks](#checks-enabled-headers) for enabled security-related HTTP response headers.<br />
6464
:heavy_check_mark: 14 [checks](#checks-missing-headers) for missing security-related HTTP response headers (the ones I consider essential).<br />
6565
:heavy_check_mark: 1217 [checks](#checks-fingerprint-headers) for fingerprinting through HTTP response headers.<br />
66-
:heavy_check_mark: 135 [checks](#checks-deprecated-headersprotocols-and-insecure-values) for deprecated HTTP response headers/protocols or with insecure/wrong values.<br />
66+
:heavy_check_mark: 136 [checks](#checks-deprecated-headersprotocols-and-insecure-values) for deprecated HTTP response headers/protocols or with insecure/wrong values.<br />
6767
:heavy_check_mark: Checks compliance with OWASP <a href="https://owasp.org/www-project-secure-headers/#div-bestpractices" target="_blank">'Secure Headers Project'<a> Best Practices.<br />
6868
:heavy_check_mark: SSL/TLS checks: requires the **amazing** https://testssl.sh/.<br />
6969
:heavy_check_mark: Browser support references for enabled HTTP security headers: provided by https://caniuse.com/.<br />

additional/insecure.txt

+1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ Cross-Origin-Embedder-Policy: Potentially Unsafe Value
6868
Cross-Origin-Embedder-Policy-Report-Only: No Valid Directives
6969
Cross-Origin-Opener-Policy: No Valid Directives
7070
Cross-Origin-Opener-Policy: Unsafe value
71+
Cross-Origin-Opener-Policy-Report-Only: No Valid Directives
7172
Cross-Origin-Resource-Policy: No Valid Directives
7273
Digest: Deprecated Header
7374
Document-Isolation-Policy: No Valid Directives

humble.py

+68-62
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@
151151
XML_STRING = ('Ref: ', 'Value: ', 'Valor: ')
152152

153153
current_time = datetime.now().strftime("%Y/%m/%d - %H:%M:%S")
154-
local_version = datetime.strptime('2025-04-04', '%Y-%m-%d').date()
154+
local_version = datetime.strptime('2025-04-05', '%Y-%m-%d').date()
155155

156156

157157
class SSLContextAdapter(requests.adapters.HTTPAdapter):
@@ -2593,101 +2593,107 @@ def custom_help_formatter(prog):
25932593
if 'unsafe-none' in coop_h:
25942594
print_details('[icoopi_h]', '[icoopi]', 'd', i_cnt)
25952595

2596-
if 'cross-origin-resource-policy' in headers_l and '23' not in skip_list:
2596+
if 'cross-origin-opener-policy-report-only' in headers_l and \
2597+
'23' not in skip_list:
2598+
coopr_h = headers_l['cross-origin-opener-policy-report-only']
2599+
if not any(elem in coopr_h for elem in t_coop):
2600+
print_details('[icoopr_h]', '[icoopr]', 'd', i_cnt)
2601+
2602+
if 'cross-origin-resource-policy' in headers_l and '24' not in skip_list:
25972603
corp_h = headers_l['cross-origin-resource-policy']
25982604
if not any(elem in corp_h for elem in t_corp):
25992605
print_details('[icorp_h]', '[icorp]', 'd', i_cnt)
26002606

2601-
if 'digest' in headers_l and '24' not in skip_list:
2607+
if 'digest' in headers_l and '25' not in skip_list:
26022608
print_details('[idig_h]', '[idig]', 'd', i_cnt)
26032609

2604-
if 'document-isolation-policy' in headers_l and '25' not in skip_list:
2610+
if 'document-isolation-policy' in headers_l and '26' not in skip_list:
26052611
doci_h = headers_l['document-isolation-policy']
26062612
if not any(elem in doci_h for elem in t_doci):
26072613
print_details('[idocpi_h]', '[idocpi]', 'd', i_cnt)
26082614

2609-
if 'document-policy' in headers_l and '26' not in skip_list:
2615+
if 'document-policy' in headers_l and '27' not in skip_list:
26102616
docp_h = headers_l['document-policy']
26112617
if not any(elem in docp_h for elem in t_docp):
26122618
print_details('[idocp_h]', '[idoc]', 'm', i_cnt)
26132619

2614-
if 'etag' in headers_l and '27' not in skip_list:
2620+
if 'etag' in headers_l and '28' not in skip_list:
26152621
print_details('[ieta_h]', '[ieta]', 'd', i_cnt)
26162622

2617-
if 'expect-ct' in headers_l and '28' not in skip_list:
2623+
if 'expect-ct' in headers_l and '29' not in skip_list:
26182624
print_details('[iexct_h]', '[iexct]', 'm', i_cnt)
26192625

26202626
if 'expires' in headers_l and any(elem in headers_l.get('cache-control', '')
2621-
for elem in t_excc) and '29' \
2627+
for elem in t_excc) and '30' \
26222628
not in skip_list:
26232629
print_details('[iexpi_h]', '[iexpi]', 'd', i_cnt)
26242630

2625-
if 'feature-policy' in headers_l and '30' not in skip_list:
2631+
if 'feature-policy' in headers_l and '31' not in skip_list:
26262632
print_details('[iffea_h]', '[iffea]', 'd', i_cnt)
26272633

26282634
if unsafe_scheme:
26292635
print_details('[ihttp_h]', '[ihttp]', 'd', i_cnt)
26302636

26312637
if ('keep-alive' in headers_l and headers_l['keep-alive'] and
26322638
('connection' not in headers_l or
2633-
headers_l['connection'] != 'keep-alive')) and '32' not in skip_list:
2639+
headers_l['connection'] != 'keep-alive')) and '33' not in skip_list:
26342640
print_details('[ickeep_h]', '[ickeep]', 'd', i_cnt)
26352641

2636-
if 'large-allocation' in headers_l and '33' not in skip_list:
2642+
if 'large-allocation' in headers_l and '34' not in skip_list:
26372643
print_details('[ixlalloc_h]', '[ixallocd]', 'd', i_cnt)
26382644

2639-
if 'nel' in headers_l and '34' not in skip_list:
2645+
if 'nel' in headers_l and '35' not in skip_list:
26402646
nel_header = headers_l['nel']
26412647
if not any(elem in nel_header for elem in t_nel_dir):
26422648
print_details('[inel_h]', '[inel]', 'd', i_cnt)
26432649
if not all(elem in nel_header for elem in t_nel_req):
26442650
print_details('[inelm_h]', '[inelm]', "d", i_cnt)
26452651

2646-
if 'no-vary-search' in headers_l and '35' not in skip_list:
2652+
if 'no-vary-search' in headers_l and '36' not in skip_list:
26472653
nvarys_header = headers_l['no_vary-search']
26482654
if not any(elem in nvarys_header for elem in t_nvarysearch):
26492655
print_details('[ifnvarys_h]', '[ifnvarys]', 'd', i_cnt)
26502656

26512657
observe_brows_header = headers_l.get('observe-browsing-topics', '')
26522658
if observe_brows_header and '?1' not in observe_brows_header and \
2653-
'36' not in skip_list:
2659+
'37' not in skip_list:
26542660
print_details('[iobsb_h]', '[iobsb]', 'd', i_cnt)
26552661

2656-
if 'onion-location' in headers_l and '37' not in skip_list:
2662+
if 'onion-location' in headers_l and '38' not in skip_list:
26572663
print_details('[ionloc_h]', '[ionloc]', 'm', i_cnt)
26582664

2659-
if 'origin-agent-cluster' in headers_l and '38' not in skip_list:
2665+
if 'origin-agent-cluster' in headers_l and '39' not in skip_list:
26602666
origin_cluster_h = headers_l['origin-agent-cluster']
26612667
if not any(elem in origin_cluster_h for elem in l_origcluster):
26622668
print_details('[iorigcluster_h]', '[iorigcluster]', 'd', i_cnt)
26632669

2664-
if 'p3p' in headers_l and '39' not in skip_list:
2670+
if 'p3p' in headers_l and '40' not in skip_list:
26652671
print_details('[ip3p_h]', '[ip3p]', 'd', i_cnt)
26662672

2667-
if 'permissions-policy' in headers_l and '40' not in skip_list:
2673+
if 'permissions-policy' in headers_l and '41' not in skip_list:
26682674
perm_header = headers_l['permissions-policy']
26692675
if not any(elem in perm_header for elem in t_per_ft):
26702676
print_details('[ifpoln_h]', '[ifpoln]', 'm', i_cnt)
26712677
permissions_analyze_content(perm_header, i_cnt)
26722678

2673-
if 'pragma' in headers_l and '41' not in skip_list:
2679+
if 'pragma' in headers_l and '42' not in skip_list:
26742680
print_details('[iprag_h]', '[iprag]', 'd', i_cnt)
26752681

2676-
if 'proxy-authenticate' in headers_l and '42' not in skip_list:
2682+
if 'proxy-authenticate' in headers_l and '43' not in skip_list:
26772683
prxyauth_h = headers_l['proxy-authenticate']
26782684
if 'basic' in prxyauth_h and unsafe_scheme:
26792685
print_details('[iprxauth_h]', '[ihbas]', 'd', i_cnt)
26802686
if not any(elem in prxyauth_h for elem in t_proxy_auth):
26812687
print_details('[iprxauthn_h]', '[iprxauthn]', 'd', i_cnt)
26822688

2683-
if 'public-key-pins' in headers_l and '43' not in skip_list:
2689+
if 'public-key-pins' in headers_l and '44' not in skip_list:
26842690
print_details('[ipkp_h]', '[ipkp]', 'd', i_cnt)
26852691

2686-
if 'public-key-pins-report-only' in headers_l and '44' not in skip_list:
2692+
if 'public-key-pins-report-only' in headers_l and '45' not in skip_list:
26872693
print_details('[ipkpr_h]', '[ipkp]', 'd', i_cnt)
26882694

26892695
referrer_header = headers_l.get('referrer-policy', '')
2690-
if referrer_header and '45' not in skip_list:
2696+
if referrer_header and '46' not in skip_list:
26912697
if ',' in referrer_header:
26922698
print_details('[irefd_h]', '[irefd]', 'd', i_cnt)
26932699
if not any(elem in referrer_header for elem in t_ref_secure):
@@ -2698,29 +2704,29 @@ def custom_help_formatter(prog):
26982704
print_details('[irefn_h]', '[irefn]', 'd', i_cnt)
26992705

27002706
refresh_header = headers_l.get('refresh', '')
2701-
if refresh_header and '46' not in skip_list and \
2707+
if refresh_header and '47' not in skip_list and \
27022708
any(elem in refresh_header for elem in t_refresh):
27032709
print_details('[irefr_h]', '[irefr]', 'd', i_cnt)
27042710

2705-
if 'report-to' in headers_l and '47' not in skip_list:
2711+
if 'report-to' in headers_l and '48' not in skip_list:
27062712
print_details('[irept_h]', '[irept]', 'd', i_cnt)
27072713

27082714
report_h = headers_l.get('reporting-endpoints', '')
2709-
if report_h and '48' not in skip_list and HTTP_SCHEMES[0] in report_h:
2715+
if report_h and '49' not in skip_list and HTTP_SCHEMES[0] in report_h:
27102716
print_details('[irepe_h]', '[irepe]', 'd', i_cnt)
27112717

27122718
repdig_header = headers_l.get('repr-digest', '')
2713-
if repdig_header and '49' not in skip_list:
2719+
if repdig_header and '50' not in skip_list:
27142720
if not any(elem in repdig_header for elem in t_digest_sec):
27152721
print_details('[irepdig_h]', '[irepdig]', 'd', i_cnt)
27162722
if any(elem in repdig_header for elem in t_digest_ins):
27172723
print_details('[irepdigi_h]', '[irepdigi]', 'm', i_cnt)
27182724

2719-
if 'server-timing' in headers_l and '50' not in skip_list:
2725+
if 'server-timing' in headers_l and '51' not in skip_list:
27202726
print_details('[itim_h]', '[itim]', 'd', i_cnt)
27212727

27222728
stc_header = headers_l.get("set-cookie", '')
2723-
if stc_header and '51' not in skip_list:
2729+
if stc_header and '52' not in skip_list:
27242730
if not unsafe_scheme and not all(elem in stc_header for elem in
27252731
t_cookie_sec):
27262732
print_details('[iset_h]', '[iset]', "d", i_cnt)
@@ -2734,20 +2740,20 @@ def custom_help_formatter(prog):
27342740

27352741
setlogin_header = headers_l.get("set-login", '')
27362742
if setlogin_header and not any(elem in setlogin_header for elem in t_setlogin)\
2737-
and '52' not in skip_list:
2743+
and '53' not in skip_list:
27382744
print_details('[islogin_h]', '[islogin]', 'd', i_cnt)
27392745

2740-
if 'sourcemap' in headers_l and '53' not in skip_list:
2746+
if 'sourcemap' in headers_l and '54' not in skip_list:
27412747
print_details('[ismap_m]', '[ismap]', 'd', i_cnt)
27422748

2743-
if 'speculation-rules' in headers_l and '54' not in skip_list:
2749+
if 'speculation-rules' in headers_l and '55' not in skip_list:
27442750
print_details('[ispec_m]', '[ispec]', 'm', i_cnt)
27452751

2746-
if 'strict-dynamic' in headers_l and '55' not in skip_list:
2752+
if 'strict-dynamic' in headers_l and '56' not in skip_list:
27472753
print_details('[isdyn_h]', '[isdyn]', 'd', i_cnt)
27482754

27492755
sts_header = headers_l.get('strict-transport-security', '')
2750-
if sts_header and '56' not in skip_list:
2756+
if sts_header and '57' not in skip_list:
27512757
try:
27522758
age = int(''.join(filter(str.isdigit, sts_header)))
27532759
if unsafe_scheme:
@@ -2762,25 +2768,25 @@ def custom_help_formatter(prog):
27622768
except ValueError:
27632769
print_details('[ists_h]', '[ists]', 'm', i_cnt)
27642770

2765-
if 'supports-loading-mode' in headers_l and '57' not in skip_list:
2771+
if 'supports-loading-mode' in headers_l and '58' not in skip_list:
27662772
support_mode_h = headers_l['supports-loading-mode']
27672773
if unsafe_scheme:
27682774
print_details('[islmodei_h]', '[islmodei]', 'd', i_cnt)
27692775
if not any(elem in support_mode_h for elem in t_support_mode):
27702776
print_details('[islmode_h]', '[islmode]', 'd', i_cnt)
27712777

2772-
if 'surrogate-control' in headers_l and '58' not in skip_list:
2778+
if 'surrogate-control' in headers_l and '59' not in skip_list:
27732779
surrogate_mode_h = headers_l['surrogate-control']
27742780
if not any(elem in surrogate_mode_h for elem in t_surrogate):
27752781
print_details('[isurrmode_h]', '[isurrmode]', 'd', i_cnt)
27762782

2777-
if headers_l.get('timing-allow-origin', '') == '*' and '59' not in skip_list:
2783+
if headers_l.get('timing-allow-origin', '') == '*' and '60' not in skip_list:
27782784
print_details('[itao_h]', '[itao]', 'd', i_cnt)
27792785

2780-
if 'tk' in headers_l and '60' not in skip_list:
2786+
if 'tk' in headers_l and '61' not in skip_list:
27812787
print_details('[ixtk_h]', '[ixtkd]', 'd', i_cnt)
27822788

2783-
if 'trailer' in headers_l and '61' not in skip_list:
2789+
if 'trailer' in headers_l and '62' not in skip_list:
27842790
trailer_h = headers_l['trailer']
27852791
if any(elem in trailer_h for elem in t_trailer):
27862792
print_detail_r('[itrailer_h]', is_red=True)
@@ -2791,98 +2797,98 @@ def custom_help_formatter(prog):
27912797
print_detail('[itrailer_d_r]')
27922798
i_cnt[0] += 1
27932799

2794-
if 'transfer-encoding' in headers_l and '62' not in skip_list:
2800+
if 'transfer-encoding' in headers_l and '63' not in skip_list:
27952801
transfer_h = headers_l['transfer-encoding']
27962802
if not any(elem in transfer_h for elem in t_transfer):
27972803
print_details('[ictrf_h]', '[itrf]', 'd', i_cnt)
27982804

2799-
if 'vary' in headers_l and '63' not in skip_list:
2805+
if 'vary' in headers_l and '64' not in skip_list:
28002806
print_details('[ixvary_h]', '[ixvary]', 'm', i_cnt)
28012807

28022808
wcondig_header = headers_l.get('want-content-digest', '')
2803-
if wcondig_header and '64' not in skip_list:
2809+
if wcondig_header and '65' not in skip_list:
28042810
if not any(elem in wcondig_header for elem in t_digest_sec):
28052811
print_details('[iwcondig_h]', '[iwcondig]', 'd', i_cnt)
28062812
if any(elem in wcondig_header for elem in t_digest_ins):
28072813
print_details('[iwcondigi_h]', '[iwcondigi]', 'm', i_cnt)
28082814

2809-
if 'want-digest' in headers_l and '65' not in skip_list:
2815+
if 'want-digest' in headers_l and '66' not in skip_list:
28102816
print_details('[ixwandig_h]', '[ixwandig]', 'd', i_cnt)
28112817

28122818
wreprdig_header = headers_l.get('want-repr-digest', '')
2813-
if wreprdig_header and '66' not in skip_list:
2819+
if wreprdig_header and '67' not in skip_list:
28142820
if not any(elem in wreprdig_header for elem in t_digest_sec):
28152821
print_details('[iwreprdig_h]', '[iwreprdig]', 'd', i_cnt)
28162822
if any(elem in wreprdig_header for elem in t_digest_ins):
28172823
print_details('[iwreprdigi_h]', '[iwreprdigi]', 'm', i_cnt)
28182824

2819-
if 'warning' in headers_l and '67' not in skip_list:
2825+
if 'warning' in headers_l and '68' not in skip_list:
28202826
print_details('[ixwar_h]', '[ixward]', 'd', i_cnt)
28212827

28222828
wwwa_header = headers_l.get('www-authenticate', '')
2823-
if wwwa_header and unsafe_scheme and ('basic' in wwwa_header) and '68' not in \
2829+
if wwwa_header and unsafe_scheme and ('basic' in wwwa_header) and '69' not in \
28242830
skip_list:
28252831
print_details('[ihbas_h]', '[ihbas]', 'd', i_cnt)
28262832

2827-
if 'x-content-security-policy' in headers_l and '69' not in skip_list:
2833+
if 'x-content-security-policy' in headers_l and '70' not in skip_list:
28282834
print_details('[ixcsp_h]', '[ixcsp]', 'd', i_cnt)
28292835

2830-
if 'x-content-security-policy-report-only' in headers_l and '70' not in \
2836+
if 'x-content-security-policy-report-only' in headers_l and '71' not in \
28312837
skip_list:
28322838
print_details('[ixcspr_h]', '[ixcspr]', 'd', i_cnt)
28332839

2834-
if 'x-content-type-options' in headers_l and '71' not in skip_list:
2840+
if 'x-content-type-options' in headers_l and '72' not in skip_list:
28352841
if ',' in headers_l['x-content-type-options']:
28362842
print_details('[ictpd_h]', '[ictpd]', 'd', i_cnt)
28372843
elif 'nosniff' not in headers_l['x-content-type-options']:
28382844
print_details('[ictp_h]', '[ictp]', 'd', i_cnt)
28392845

2840-
if headers_l.get('x-dns-prefetch-control', '') == 'on' and '72' not in \
2846+
if headers_l.get('x-dns-prefetch-control', '') == 'on' and '73' not in \
28412847
skip_list:
28422848
print_details('[ixdp_h]', '[ixdp]', 'd', i_cnt)
28432849

2844-
if 'x-download-options' in headers_l and '73' not in skip_list:
2850+
if 'x-download-options' in headers_l and '74' not in skip_list:
28452851
print_details('[ixdow_h]', '[ixdow]', 'm', i_cnt)
28462852

28472853
xfo_header = headers_l.get('x-frame-options', '')
2848-
if xfo_header and '74' not in skip_list:
2854+
if xfo_header and '75' not in skip_list:
28492855
if ',' in xfo_header:
28502856
print_details('[ixfo_h]', '[ixfo]', 'm', i_cnt)
28512857
if 'allow-from' in xfo_header:
28522858
print_details('[ixfod_h]', '[ixfod]', 'm', i_cnt)
28532859
if xfo_header not in t_xfo_dir:
28542860
print_details('[ixfoi_h]', '[ixfodi]', 'm', i_cnt)
28552861

2856-
if 'x-pad' in headers_l and '75' not in skip_list:
2862+
if 'x-pad' in headers_l and '76' not in skip_list:
28572863
print_details('[ixpad_h]', '[ixpad]', 'd', i_cnt)
28582864

28592865
permcross_header = headers_l.get('x-permitted-cross-domain-policies', '')
2860-
if permcross_header and '76' not in skip_list:
2866+
if permcross_header and '77' not in skip_list:
28612867
if not any(elem in permcross_header for elem in t_permcross):
28622868
print_details('[ixpermcross_h]', '[ixpermcross]', 'm', i_cnt)
28632869
if 'all' in permcross_header:
28642870
print_details('[ixpermcrossu_h]', '[ixpermcrossu]', 'm', i_cnt)
28652871
if ',' in permcross_header:
28662872
print_details('[ixpermcrossd_h]', '[ixpermcrossd]', 'm', i_cnt)
28672873

2868-
if headers_l.get('x-pingback', '').endswith('xmlrpc.php') and '77' not in \
2874+
if headers_l.get('x-pingback', '').endswith('xmlrpc.php') and '78' not in \
28692875
skip_list:
28702876
print_details('[ixpb_h]', '[ixpb]', 'd', i_cnt)
28712877

28722878
robots_header = headers_l.get('x-robots-tag', '')
2873-
if robots_header and '78' not in skip_list:
2879+
if robots_header and '79' not in skip_list:
28742880
if not any(elem in robots_header for elem in t_robots):
28752881
print_details('[ixrobv_h]', '[ixrobv]', 'm', i_cnt)
28762882
if 'all' in robots_header:
28772883
print_details('[ixrob_h]', '[ixrob]', 'm', i_cnt)
28782884

2879-
if 'x-runtime' in headers_l and '79' not in skip_list:
2885+
if 'x-runtime' in headers_l and '80' not in skip_list:
28802886
print_details('[ixrun_h]', '[ixrun]', 'd', i_cnt)
28812887

2882-
if 'x-sourcemap' in headers_l and '80' not in skip_list:
2888+
if 'x-sourcemap' in headers_l and '81' not in skip_list:
28832889
print_details('[ixsrc_h]', '[ixsrc]', 'd', i_cnt)
28842890

2885-
if 'x-ua-compatible' in headers_l and '81' not in skip_list:
2891+
if 'x-ua-compatible' in headers_l and '82' not in skip_list:
28862892
print_details('[ixuacom_h]', '[ixuacom]', 'm', i_cnt)
28872893

28882894
if http_equiv:
@@ -2891,13 +2897,13 @@ def custom_help_formatter(prog):
28912897
in tuple):
28922898
print_details('[ixuameta_h]', '[ixuameta]', 'd', i_cnt)
28932899

2894-
if 'x-webkit-csp' in headers_l and '82' not in skip_list:
2900+
if 'x-webkit-csp' in headers_l and '83' not in skip_list:
28952901
print_details('[ixwcsp_h]', '[ixcsp]', 'd', i_cnt)
28962902

2897-
if 'x-webkit-csp-report-only' in headers_l and '83' not in skip_list:
2903+
if 'x-webkit-csp-report-only' in headers_l and '84' not in skip_list:
28982904
print_details('[ixwcspr_h]', '[ixcspr]', 'd', i_cnt)
28992905

2900-
if 'x-xss-protection' in headers_l and '84' not in skip_list:
2906+
if 'x-xss-protection' in headers_l and '85' not in skip_list:
29012907
print_details('[ixxpdp_h]', '[ixxpdp]', 'm', i_cnt)
29022908
if '0' not in headers_l['x-xss-protection']:
29032909
print_details('[ixxp_h]', '[ixxp]', 'm', i_cnt)

0 commit comments

Comments
 (0)