[−][src]Struct rocket_contrib::helmet::SpaceHelmet
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.
Methods
impl SpaceHelmet
[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]
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]
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]
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
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> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T, I> AsResult<T, I> for T where
I: Input,
[src]
I: Input,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IntoCollection<T> for T
[src]
fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
[src]
A: Array<Item = T>,
fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
A: Array<Item = U>,
F: FnMut(T) -> U,
[src]
A: Array<Item = U>,
F: FnMut(T) -> U,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Typeable for T where
T: Any,
[src]
T: Any,