#middleware #web-framework #security #http-header #helmet #web #rust

helmet-core

HTTP security headers middleware core for various web frameworks

1 unstable release

0.1.0 Jan 5, 2024

#74 in #http-header

Download history 106/week @ 2024-07-23 114/week @ 2024-07-30 119/week @ 2024-08-06 80/week @ 2024-08-13 196/week @ 2024-08-20 34/week @ 2024-08-27 32/week @ 2024-09-03 105/week @ 2024-09-10 45/week @ 2024-09-17 121/week @ 2024-09-24 148/week @ 2024-10-01 186/week @ 2024-10-08 112/week @ 2024-10-15 192/week @ 2024-10-22 198/week @ 2024-10-29 134/week @ 2024-11-05

659 downloads per month
Used in 2 crates

MIT license

62KB
833 lines

helmet-core - Security Middleware for popular Rust web frameworks

crate docs

  • ntex-helmet is a security middleware for the ntex web framework.
  • actix-web-helmet is a security middleware for the actix-web web framework. Coming Soon
  • rocket-helmet is a security middleware for the rocket web framework. Coming Soon
  • warp-helmet is a security middleware for the warp web framework. Coming Soon
  • axum-helmet is a security middleware for the axum web framework.

It works by setting HTTP headers for you. These headers can help protect your app from some well-known web vulnerabilities:

Usage

Add this to your Cargo.toml:

[dependencies]
helmet-core = "0.1"

Implementing the middleware is different for each framework. See the README for your framework of choice to see how to use it.

Example

use helmet_core::Helmet;

let helmet = Helmet::default();

struct MyCustomFrameworkMiddleware(Helmet);

// Imagine this is a middleware for your favorite framework
impl<S, B> Middleware<S, B> for MyCustomFrameworkMiddleware {
    fn start(&self, req: &mut Request<S>) -> Result<Started> {
        self.0.headers.iter().for_each(|(k, v)| {
            req.headers_mut().insert(k, v.clone());
        });
        Ok(Started::Done)
    }
}

License

This project is licensed under the MIT license.

No runtime deps