mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Auto merge of #25404 - Darkspirit:hsts, r=asajeffrey
Fix HSTS
The headers crate does not [expose](0c42ad8cf5/src/common/strict_transport_security.rs (L42)
) HSTS struct fields. At the moment, it's only usable for HSTS header encoding. An update of the headers crate would require a huge update of http, hyper, hyper_serde, net::decoder as well. Therefore I've copied the `typed_get::<StrictTransportSecurity>` decoding feature for now, but with exposed struct fields. Let's remove this custom struct with the next hyper upgrade. I tried to prevent needless HSTS database lookups when network.enforce_tls.enabled is set.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #14363, fix #20120.
- [x] There are tests for these changes
This commit is contained in:
commit
e201b1688b
8 changed files with 254 additions and 16 deletions
|
@ -1381,7 +1381,7 @@ fn http_network_fetch(
|
|||
.map(|_| uuid::Uuid::new_v4().to_simple().to_string());
|
||||
|
||||
if log_enabled!(log::Level::Info) {
|
||||
info!("request for {} ({:?})", url, request.method);
|
||||
info!("{:?} request for {}", request.method, url);
|
||||
for header in request.headers.iter() {
|
||||
info!(" - {:?}", header);
|
||||
}
|
||||
|
@ -1563,9 +1563,10 @@ fn http_network_fetch(
|
|||
|
||||
// Substep 2
|
||||
|
||||
// TODO Determine if response was retrieved over HTTPS
|
||||
// TODO Servo needs to decide what ciphers are to be treated as "deprecated"
|
||||
response.https_state = HttpsState::None;
|
||||
response.https_state = match url.scheme() {
|
||||
"https" => HttpsState::Modern,
|
||||
_ => HttpsState::None,
|
||||
};
|
||||
|
||||
// TODO Read request
|
||||
|
||||
|
@ -1592,6 +1593,12 @@ fn http_network_fetch(
|
|||
if credentials_flag {
|
||||
set_cookies_from_headers(&url, &response.headers, &context.state.cookie_jar);
|
||||
}
|
||||
context
|
||||
.state
|
||||
.hsts_list
|
||||
.write()
|
||||
.unwrap()
|
||||
.update_hsts_list_from_response(&url, &response.headers);
|
||||
|
||||
// TODO these steps
|
||||
// Step 16
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue