#http-header #header #tower #security #http #service

tower-helmet

通过各种 HTTP 头部帮助您确保塔式服务器安全

4 个版本 (2 个破坏性更新)

0.3.0 2024 年 1 月 29 日
0.2.1 2022 年 11 月 9 日
0.2.0 2022 年 4 月 12 日
0.1.0 2021 年 12 月 22 日

#40#tower

Download history 33/week @ 2024-04-23 23/week @ 2024-04-30 39/week @ 2024-05-07 27/week @ 2024-05-14 33/week @ 2024-05-21 42/week @ 2024-05-28 35/week @ 2024-06-04 55/week @ 2024-06-11 34/week @ 2024-06-18 57/week @ 2024-06-25 98/week @ 2024-07-02 38/week @ 2024-07-09 73/week @ 2024-07-16 74/week @ 2024-07-23 59/week @ 2024-07-30 435/week @ 2024-08-06

652 每月下载量

MIT 许可证

31KB
542 代码行

tower-helmet

Crates.io Documentation License

这仍然是一个非常 正在进行的工作

是从 JavaScript 世界中漂亮的 helmet.js 端移植过来的。

tower-helmet 通过设置各种 HTTP 头部来帮助您确保塔式服务器安全。 它不是万能的,但它可以帮助您!

您可以在 [header] 模块下找到所有可用的头部列表。默认情况下(使用 HelmetLayer::default它们全部都启用了。请仔细查看 [ContentSecurityPolicy]。通常您需要根据您的需求进行适配。

示例

use tower_helmet::header::{ContentSecurityPolicy, ExpectCt, XFrameOptions};
use tower_helmet::HelmetLayer;

// default layer with all security headers active
let layer = HelmetLayer::with_defaults();

// default layer with customizations applied
let mut directives = HashMap::new();
directives.insert("default-src", vec!["'self'", "https://example.com"]);
directives.insert("img-src", vec!["'self'", "data:", "https://example.com"]);
directives.insert("script-src", vec!["'self'", "'unsafe-inline'", "https://example.com"]);
let csp = ContentSecurityPolicy {
  directives,
  ..Default::default()
};

let layer = HelmetLayer::with_defaults().enable(csp);

// completely blank layer, selectively enable and add headers
let layer = HelmetLayer::blank()
  .enable(XFrameOptions::SameOrigin)
  .enable(ExpectCt::default());

依赖

~1.5MB
~26K SLoC