You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: sql/2025/security/hsts_attributes.sql
+12-10Lines changed: 12 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -3,23 +3,25 @@
3
3
# Question: How many websites use HSTS includeSubDomains and preload?
4
4
SELECT
5
5
client,
6
-
COUNT(0) AStotal_requests,
7
-
COUNTIF(hsts_header_val IS NOT NULL) AStotal_hsts_headers,
8
-
COUNTIF(hsts_header_val IS NOT NULL)/COUNT(0) AS pct_hsts_requests,
9
-
COUNTIF(REGEXP_CONTAINS(hsts_header_val, r'(?i)max-age\s*=\s*\d+') AND NOT REGEXP_CONTAINS(CONCAT(hsts_header_val, ''), r'(?i)max-age\s*=\s*0\W'))/COUNTIF(hsts_header_val IS NOT NULL) AS pct_valid_max_age,
10
-
COUNTIF(REGEXP_CONTAINS(CONCAT(hsts_header_val, ''), r'(?i)max-age\s*=\s*0\W'))/COUNTIF(hsts_header_val IS NOT NULL) AS pct_zero_max_age,
11
-
COUNTIF(REGEXP_CONTAINS(hsts_header_val, r'(?i)includeSubDomains'))/COUNTIF(hsts_header_val IS NOT NULL) AS pct_include_subdomains,
12
-
COUNTIF(REGEXP_CONTAINS(hsts_header_val, r'(?i)preload'))/COUNTIF(hsts_header_val IS NOT NULL) AS pct_preload
6
+
COUNT(0) AStotal_requests_with_hsts_header,
7
+
COUNTIF(hsts_header_val IS NOT NULL) AStotal_non_null_hsts_headers,
8
+
SAFE_DIVIDE(COUNTIF(hsts_header_val IS NOT NULL), COUNT(0)) AS pct_hsts_requests,
9
+
SAFE_DIVIDE(COUNTIF(REGEXP_CONTAINS(hsts_header_val, r'(?i)max-age\s*=\s*\d+') AND NOT REGEXP_CONTAINS(CONCAT(hsts_header_val, ''), r'(?i)max-age\s*=\s*0\W')), COUNTIF(hsts_header_val IS NOT NULL)) AS pct_valid_max_age,
10
+
SAFE_DIVIDE(COUNTIF(REGEXP_CONTAINS(CONCAT(hsts_header_val, ''), r'(?i)max-age\s*=\s*0\W')), COUNTIF(hsts_header_val IS NOT NULL)) AS pct_zero_max_age,
11
+
SAFE_DIVIDE(COUNTIF(REGEXP_CONTAINS(hsts_header_val, r'(?i)includeSubDomains')), COUNTIF(hsts_header_val IS NOT NULL)) AS pct_include_subdomains,
12
+
SAFE_DIVIDE(COUNTIF(REGEXP_CONTAINS(hsts_header_val, r'(?i)preload')), COUNTIF(hsts_header_val IS NOT NULL)) AS pct_preload
Copy file name to clipboardExpand all lines: sql/2025/security/https_server_redirects.sql
+4-3Lines changed: 4 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -8,10 +8,11 @@ SELECT
8
8
COUNT(DISTINCT url) AS total_urls_on_page,
9
9
COUNT(DISTINCT(CASE WHEN url LIKE'http://%' THEN url END)) AS count_http_urls_on_page,
10
10
COUNT(DISTINCT(CASE WHEN url LIKE'http://%' THEN url END)) /COUNT(DISTINCT url) AS pct_http_urls_on_page,
11
-
COUNT(DISTINCT(CASE WHEN url LIKE'http://%'ANDSTRING(summary.resp_location) LIKE'https://%'AND INT64(summary.status) BETWEEN 300AND399 THEN url END)) AS count_http_urls_with_https_redirect_on_page,
12
-
COUNT(DISTINCT(CASE WHEN url LIKE'http://%'ANDSTRING(summary.resp_location) LIKE'https://%'AND INT64(summary.status) BETWEEN 300AND399 THEN url END)) /COUNT(DISTINCT(CASE WHEN url LIKE'http://%' THEN url END)) AS pct_http_urls_with_https_redirect_on_page
11
+
COUNT(DISTINCT(CASE WHEN url LIKE'http://%'AND(SELECT value FROM UNNEST(response_headers) WHERELOWER(name) ='location'LIMIT1) LIKE'https://%'AND INT64(summary.status) BETWEEN 300AND399 THEN url END)) AS count_http_urls_with_https_redirect_on_page,-- noqa: AM09
12
+
COUNT(DISTINCT(CASE WHEN url LIKE'http://%'AND(SELECT value FROM UNNEST(response_headers) WHERELOWER(name) ='location'LIMIT1) LIKE'https://%'AND INT64(summary.status) BETWEEN 300AND399 THEN url END)) /COUNT(DISTINCT(CASE WHEN url LIKE'http://%' THEN url END)) AS pct_http_urls_with_https_redirect_on_page-- noqa: AM09
0 commit comments