do stuffs
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
use rocket::fairing::{Fairing, Info, Kind};
|
||||
use rocket::http::Header;
|
||||
use rocket::{Request, Response};
|
||||
|
||||
pub struct SecurityHeaders;
|
||||
|
||||
#[rocket::async_trait]
|
||||
impl Fairing for SecurityHeaders {
|
||||
fn info(&self) -> Info {
|
||||
Info {
|
||||
name: "Security Headers",
|
||||
kind: Kind::Response,
|
||||
}
|
||||
}
|
||||
|
||||
async fn on_response<'r>(&self, _request: &'r Request<'_>, response: &mut Response<'r>) {
|
||||
response.set_header(Header::new("X-Content-Type-Options", "nosniff"));
|
||||
response.set_header(Header::new("X-Frame-Options", "DENY"));
|
||||
response.set_header(Header::new("X-XSS-Protection", "1; mode=block"));
|
||||
response.set_header(Header::new(
|
||||
"Referrer-Policy",
|
||||
"strict-origin-when-cross-origin",
|
||||
));
|
||||
response.set_header(Header::new(
|
||||
"Content-Security-Policy",
|
||||
"default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self'; font-src 'self' data:; connect-src 'self'; frame-ancestors 'none';",
|
||||
));
|
||||
response.set_header(Header::new(
|
||||
"Permissions-Policy",
|
||||
"geolocation=(), microphone=(), camera=()",
|
||||
));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user