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: src/content/en/2025/security.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1490,7 +1490,7 @@ The two leading industries in terms of security headers happen to be industries
1490
1490
1491
1491
## Malpractices on the web
1492
1492
1493
-
Cryptocurrencies are more popular than they have ever been. Cryptomining has been a large business for a number of years and adversaries have been known to install cryptominers as a form of malware on victim websites. Over the past years, the use of cryptominers on the web has been steadily declining, just like it has been over the past year.
1493
+
Cryptocurrencies are more popular than they have ever been. Cryptomining has been a large business for a number of years and adversaries have been known to install cryptominers as a form of malware on victim websites. Over the past years, the use of cryptominers on the web has been steadily declining.
1494
1494
1495
1495
{{ figure_markup(
1496
1496
image="cryptominers-trend.png",
@@ -1502,7 +1502,7 @@ Cryptocurrencies are more popular than they have ever been. Cryptomining has bee
1502
1502
)
1503
1503
}}
1504
1504
1505
-
We see the number of pages with cryptominers decrease to only 37 pages on mobile, a 42% decline [since last year](../2024/security#fig-47). It is also a 83% decline since September 2022, only three years earlier.
1505
+
We see the number of pages with cryptominers decreased to only 37 pages on mobile, a 42% decline [since last year](../2024/security#fig-47). It is also a 83% decline since September 2022, only three years earlier.
1506
1506
1507
1507
{{ figure_markup(
1508
1508
image="cryptominers-market-share.png",
@@ -1522,7 +1522,7 @@ While there are many security mechanisms available on the web and in browsers, i
1522
1522
1523
1523
### Unsupported policies in `<meta>`
1524
1524
1525
-
When configuring security policies, it is important that developers understand how they have to define the policy. Some policies can be defined through both a header and the HTML `<meta>` tag. However, many policies can not be defined through `<meta>`. Developers sometimes make the mistake of trying to configure these policies through the `<meta>` tag anyway. Unfortunately browsers will ignore these policies, resulting in inactive security policies.
1525
+
When configuring security policies, it is important that developers understand how they have to define the policy. Some policies can be defined through both a header and the HTML `<meta>` tag. However, many policies cannot be defined through `<meta>`. Developers sometimes make the mistake of trying to configure these policies through the `<meta>` tag anyway. Unfortunately browsers will ignore these policies, resulting in inactive security policies.
1526
1526
1527
1527
<figure>
1528
1528
<table>
@@ -1568,7 +1568,7 @@ We find that around 0.11% of mobile sites attempt to set security headers that b
1568
1568
1569
1569
### Unsupported CSP directives in `<meta>`
1570
1570
1571
-
While CSP *can* be configured via `<meta>` tags and this behaviour has been observed on 0.59% of mobile pages, certain CSP directives are explicitly disallowed in meta implementations and will be ignored by browsers. These directives can only be set by using the `Content-Security-Policy` response header.
1571
+
While CSP *can* be configured via `<meta>` tags and this behaviour has been observed on 0.59% of mobile pages, certain CSP directives are explicitly disallowed in `<meta>` tag implementations and will be ignored by browsers. These directives can only be set by using the `Content-Security-Policy` response header.
1572
1572
1573
1573
<figure>
1574
1574
<table>
@@ -1595,7 +1595,7 @@ While CSP *can* be configured via `<meta>` tags and this behaviour has been obse
1595
1595
<figcaption>{{ figure_link(caption="Percentage of CSP policies defined in `<meta>` with disallowed directives", sheets_gid="1969221363", sql_file="meta_csp_disallowed_directives.sql") }}</figcaption>
1596
1596
</figure>
1597
1597
1598
-
We find that over 2% of mobile pages setting a CSP policy via a `<meta>` tag include the `frame-ancestors` directive and 0.003% include the `sandbox` directive. The latter boils down to only three pages out of the entire crawled dataset. Compared to last edition the misconfiguration of `frame-ancestors` shows up on 600 more pages, thereby rising by over 0.8%. This represents a slow but negative evolution for these types of misconfigurations.
1598
+
We find that over 2% of mobile pages setting a CSP policy via a `<meta>` tag include the `frame-ancestors` directive and 0.003% include the `sandbox` directive. The latter boils down to only three pages out of the entire crawled dataset. Compared to last edition, the misconfiguration of `frame-ancestors` shows up on 600 more pages, thereby rising by over 0.8%. This represents a slow but negative evolution for these types of misconfigurations.
1599
1599
1600
1600
### COOP/COEP/CORP confusion
1601
1601
@@ -1760,7 +1760,7 @@ The `Server-Timing` HTTP header is a response header defined in a <a hreflang="e
1760
1760
)
1761
1761
}}
1762
1762
1763
-
The percentage of hosts returning a `server-timing` header has increased by over 15% to being in use by over a fifth of hosts that have been visited by the crawler. This is a very steep increase since [last year](../2024/security#missing-suppression-of-server-timing-header).
1763
+
The percentage of hosts returning a `server-timing` header has increased by over 15% in use by over a fifth of hosts that have been visited by the crawler. This is a very steep increase since [last year](../2024/security#missing-suppression-of-server-timing-header).
1764
1764
1765
1765
{{ figure_markup(
1766
1766
image="server-timing-header-dur-property.png",
@@ -1773,7 +1773,7 @@ The percentage of hosts returning a `server-timing` header has increased by over
1773
1773
1774
1774
Of the `server-timing` headers on the web, we find 42% of them have at least one `dur` property. This is a relative decrease compared to [last year](../2024/security#fig-53), but given the steep incline in header use over the year, the absolute number has risen. This also means that more headers do not include a `dur` property and use the header for other purposes, possibly through the use of the `desc` property that allows developers to set a description for certain metrics.
1775
1775
1776
-
Because the information included in the `server-timing` header can be sensitive, access to the values is restricted to the same origin and to origins listed in the `Timing-Allow-Origin`. As we have shown above, many websites configure the `Timing-Allow-Origin` with a wildcard character, allowing all origins to access this potentially sensitive information. Even without cross-origin access, timing attacks can still be executed directly against servers exposing sensitive timing information outside of the browser context.
1776
+
Because the information included in the `server-timing` header can be sensitive, access to the values is restricted to the same origin and to origins listed in the `Timing-Allow-Origin` header. As we have shown above, many websites configure the `Timing-Allow-Origin` with a wildcard character, allowing all origins to access this potentially sensitive information. Even without cross-origin access, timing attacks can still be executed directly against servers exposing sensitive timing information outside of the browser context.
1777
1777
1778
1778
## Well-known URIs
1779
1779
@@ -1829,7 +1829,7 @@ The <a hreflang="en" href="https://w3c.github.io/webappsec-change-password-url/r
1829
1829
)
1830
1830
}}
1831
1831
1832
-
We find similar results to [2022's](../2022/security#change-password) and [2024's](../2024/security#change-password) edition of the Web Almanac. However, the number of faulty ok status responses has grown slightly, from 84% in 2024 for both desktop and mobile pages to 83% and 84%, respectively. Web developers should continue to make their application use the correct status codes to respond to incoming requests in order to avoid that the status codes lose meaning.
1832
+
We find similar results to [2022's](../2022/security#change-password) and [2024's](../2024/security#change-password) edition of the Web Almanac. However, the number of faulty ok status responses has grown slightly, from 84% in 2024 for both desktop and mobile pages to 83% and 84%, respectively. Web developers should continue to make their application use the correct status codes to respond to incoming requests in order to avoid these status codes from losing meaning.
1833
1833
1834
1834
### Sensitive endpoints in `robots.txt`
1835
1835
@@ -1853,4 +1853,4 @@ This security chapter shows positive trends in the adoption of web security poli
1853
1853
1854
1854
Despite these positive trends, developers must remain vigilant when leveraging these security mechanisms. Due to the growing complexity of the many available security mechanisms, we saw growth in the number of misconfigurations on the web. We saw that 0.1% of pages configure security policies in the `<meta>` HTML tag while this is not supported by browsers. Another problem is the confusion between related protections: 5% of values of the COEP header are invalid values that are only valid in the related CORP or COOP header. We also observe a form of developer fatigue where the least strict value of a protection is configured in order to make deployment more manageable or prevent potential problems, such as the wildcard value in the `Timing-Allow-Origin` header showing up in over 84% of these headers. Luckily, developers can easily mitigate these issues once they are aware of the problems.
1855
1855
1856
-
New attacks in the future will inevitably drive the design of even more protection mechanisms to protect users worldwide. Policy makers will have to focus on reducing complexity in these new mechanisms to avoid developer confusion, but while the adoption of new security features takes time, we see relatively new policies being picked up and getting more adoption over time, thereby creating a more secure web for everyone.
1856
+
New attacks in the future will inevitably drive the design of even more protection mechanisms to keep users safe worldwide. Policy makers will have to focus on reducing complexity in these new mechanisms to avoid developer confusion, but while the adoption of new security features takes time, we see relatively new policies being picked up and getting more adoption over time, thereby creating a more secure web for everyone.
0 commit comments