feat(core): use a strict CSP on the isolation iframe (#9075)

This commit is contained in:
Lucas Fernandes Nogueira 2024-03-04 21:10:34 -03:00 committed by GitHub
parent 86fa339de7
commit 7cec1049e8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 9 additions and 0 deletions

View File

@ -0,0 +1,5 @@
---
"tauri": patch:enhance
---
Use a strict content security policy on the isolation pattern HTML.

View File

@ -10,6 +10,8 @@ use std::sync::Arc;
use crate::{manager::webview::PROCESS_IPC_MESSAGE_FN, webview::UriSchemeProtocolHandler};
const CSP: &str = "default-src: 'none'";
pub fn get(assets: Arc<EmbeddedAssets>, aes_gcm_key: [u8; 32]) -> UriSchemeProtocolHandler {
Box::new(move |request, responder| {
let response = match request_to_path(&request).as_str() {
@ -23,6 +25,7 @@ pub fn get(assets: Arc<EmbeddedAssets>, aes_gcm_key: [u8; 32]) -> UriSchemeProto
match template.render(asset.as_ref(), &Default::default()) {
Ok(asset) => http::Response::builder()
.header(CONTENT_TYPE, mime::TEXT_HTML.as_ref())
.header("Content-Security-Policy", CSP)
.body(asset.into_string().as_bytes().to_vec()),
Err(_) => http::Response::builder()
.status(http::StatusCode::INTERNAL_SERVER_ERROR)

View File

@ -3302,6 +3302,7 @@ dependencies = [
"gtk",
"http",
"jni",
"log",
"percent-encoding",
"raw-window-handle 0.6.0",
"softbuffer",