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
652 每月下载量
31KB
542 代码行
tower-helmet
这仍然是一个非常 正在进行的工作
是从 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