Struct rocket_contrib::helmet::SpaceHelmet [−][src]
pub struct SpaceHelmet { /* fields omitted */ }
Expand description
A Fairing
that adds HTTP
headers to outgoing responses that control security features on the browser.
Usage
To use SpaceHelmet
, first construct an instance of it. To use the default
set of headers, construct with SpaceHelmet::default()
.
For an instance with no preset headers, use SpaceHelmet::new()
. To
enable an additional header, use enable()
, and to
disable a header, use disable()
:
use rocket_contrib::helmet::SpaceHelmet; use rocket_contrib::helmet::{XssFilter, ExpectCt}; // A `SpaceHelmet` with the default headers: let helmet = SpaceHelmet::default(); // A `SpaceHelmet` with the default headers minus `XssFilter`: let helmet = SpaceHelmet::default().disable::<XssFilter>(); // A `SpaceHelmet` with the default headers plus `ExpectCt`. let helmet = SpaceHelmet::default().enable(ExpectCt::default()); // A `SpaceHelmet` with only `XssFilter` and `ExpectCt`. let helmet = SpaceHelmet::default() .enable(XssFilter::default()) .enable(ExpectCt::default());
Then, attach the instance of SpaceHelmet
to your application’s instance of
Rocket
:
rocket::ignite() // ... .attach(helmet)
The fairing will inject all enabled headers into all outgoing responses unless the response already contains a header with the same name. If it does contain the header, a warning is emitted, and the header is not overwritten.
TLS and HSTS
If TLS is configured and enabled when the application is launched in a non-development environment (e.g., staging or production), HSTS is automatically enabled with its default policy and a warning is issued.
To get rid of this warning, explicitly enable()
an Hsts
policy.
Implementations
impl SpaceHelmet
[src]
impl SpaceHelmet
[src]pub fn new() -> Self
[src]
pub fn new() -> Self
[src]Returns an instance of SpaceHelmet
with no headers enabled.
Example
use rocket_contrib::helmet::SpaceHelmet; let helmet = SpaceHelmet::new();
pub fn enable<P: Policy>(self, policy: P) -> Self
[src]
pub fn enable<P: Policy>(self, policy: P) -> Self
[src]Enables the policy header policy
.
If the poliicy was previously enabled, the configuration is replaced
with that of policy
.
Example
use rocket_contrib::helmet::SpaceHelmet; use rocket_contrib::helmet::NoSniff; let helmet = SpaceHelmet::new().enable(NoSniff::default());
pub fn disable<P: Policy>(self) -> Self
[src]
pub fn disable<P: Policy>(self) -> Self
[src]Disables the policy header policy
.
Example
use rocket_contrib::helmet::SpaceHelmet; use rocket_contrib::helmet::NoSniff; let helmet = SpaceHelmet::default().disable::<NoSniff>();
pub fn is_enabled<P: Policy>(&self) -> bool
[src]
pub fn is_enabled<P: Policy>(&self) -> bool
[src]Returns true
if the policy P
is enabled.
Example
use rocket_contrib::helmet::SpaceHelmet; use rocket_contrib::helmet::{XssFilter, NoSniff, Frame}; use rocket_contrib::helmet::{Hsts, ExpectCt, Referrer}; let helmet = SpaceHelmet::default(); assert!(helmet.is_enabled::<XssFilter>()); assert!(helmet.is_enabled::<NoSniff>()); assert!(helmet.is_enabled::<Frame>()); assert!(!helmet.is_enabled::<Hsts>()); assert!(!helmet.is_enabled::<ExpectCt>()); assert!(!helmet.is_enabled::<Referrer>());
Trait Implementations
impl Default for SpaceHelmet
[src]
impl Default for SpaceHelmet
[src]impl Fairing for SpaceHelmet
[src]
impl Fairing for SpaceHelmet
[src]fn on_response(&self, _request: &Request<'_>, response: &mut Response<'_>)
[src]
fn on_response(&self, _request: &Request<'_>, response: &mut Response<'_>)
[src]The response callback. Read more
fn on_attach(&self, rocket: Rocket) -> Result<Rocket, Rocket>
[src]
fn on_attach(&self, rocket: Rocket) -> Result<Rocket, Rocket>
[src]The attach callback. Returns Ok
if launch should proceed and Err
if
launch should be aborted. Read more
fn on_request(&self, request: &mut Request<'_>, data: &Data)
[src]
fn on_request(&self, request: &mut Request<'_>, data: &Data)
[src]The request callback. Read more
Auto Trait Implementations
impl !RefUnwindSafe for SpaceHelmet
impl Send for SpaceHelmet
impl Sync for SpaceHelmet
impl Unpin for SpaceHelmet
impl !UnwindSafe for SpaceHelmet
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
pub fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
pub fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
Converts self
into a collection.
pub fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
F: FnMut(T) -> U,
A: Array<Item = U>,
F: FnMut(T) -> U,
A: Array<Item = U>,
impl<T> IntoSql for T
[src]
impl<T> IntoSql for T
[src]fn into_sql<T>(self) -> Self::Expression where
Self: AsExpression<T>,
[src]
fn into_sql<T>(self) -> Self::Expression where
Self: AsExpression<T>,
[src]Convert self
to an expression for Diesel’s query builder. Read more
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression where
&'a Self: AsExpression<T>,
[src]
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression where
&'a Self: AsExpression<T>,
[src]Convert &self
to an expression for Diesel’s query builder. Read more
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,