如何使用头盔?
How to use helmet?
我想使用头盔包来做以下事情:
set X-Frame-Options = SAMEORIGIN
Disable the X-Powered-By header.
Content-Security-Policy 应该是什么?如何使用 helmet 设置它?
Access-Control-Allow-Origin 怎么样?
我还想用它来启用安全性最佳实践。你有什么建议?这些最佳做法是什么?我该如何设置它们?
你可以这样写:
app.use(helmet({
frameguard: false // for SAMEORIGIN
}));
app.disable('x-powered-by'); // for disable the X-Powered-By header.
这里是头盔的维护者。
首先,Helmet 不足以确保您的 Express 应用程序安全。这需要了解最佳实践、漏洞等。 Helmet 仅尝试解决该难题的一小部分:设置与安全相关的各种 HTTP 响应 header。
例如,默认情况下,Helmet 会将名为 X-Frame-Options
的 header 设置为 SAMEORIGIN
。 header 不会神奇地使您的应用安全,但它可以帮助缓解 clickjacking attacks。它还将默认禁用名为 X-Powered-By
的 header,
以下是使用 Helmet 及其所有默认设置的方法:
app.use(helmet());
如果您想覆盖 X-Frame-Options
的默认值,您可以这样做:
// Sets all of the defaults except for X-Frame-Options,
// which is set to "DENY" instead of its default
app.use(helmet({
frameguard: { action: 'DENY' },
}));
如果你想让 Helmet 完全忽略 X-Frame-Options
header:
// Sets all of the defaults except for X-Frame-Options
app.use(helmet({
frameguard: false,
}));
默认情况下,头盔负责11header秒,包括上面提到的两个。
头盔最重要,也是最难配置的,header是Content-Security-Policy
。这里不值得深入描述;我推荐阅读 MDN's introductory article.
头盔可以帮你设置Content-Security-Policy
header,你可以阅读更多关于on Helmet's docs的内容。这是一个简单的例子:
app.use(
helmet.contentSecurityPolicy({
directives: {
...helmet.contentSecurityPolicy.getDefaultDirectives(),
"script-src": ["'self'", "example.com"],
},
})
);
您还询问了 Access-Control-Allow-Origin
。这是叫做 Cross-Origin Resource Sharing 的一部分,头盔不会触及它。
我想使用头盔包来做以下事情:
set X-Frame-Options = SAMEORIGIN
Disable the X-Powered-By header.
Content-Security-Policy 应该是什么?如何使用 helmet 设置它? Access-Control-Allow-Origin 怎么样?
我还想用它来启用安全性最佳实践。你有什么建议?这些最佳做法是什么?我该如何设置它们?
你可以这样写:
app.use(helmet({
frameguard: false // for SAMEORIGIN
}));
app.disable('x-powered-by'); // for disable the X-Powered-By header.
这里是头盔的维护者。
首先,Helmet 不足以确保您的 Express 应用程序安全。这需要了解最佳实践、漏洞等。 Helmet 仅尝试解决该难题的一小部分:设置与安全相关的各种 HTTP 响应 header。
例如,默认情况下,Helmet 会将名为 X-Frame-Options
的 header 设置为 SAMEORIGIN
。 header 不会神奇地使您的应用安全,但它可以帮助缓解 clickjacking attacks。它还将默认禁用名为 X-Powered-By
的 header,
以下是使用 Helmet 及其所有默认设置的方法:
app.use(helmet());
如果您想覆盖 X-Frame-Options
的默认值,您可以这样做:
// Sets all of the defaults except for X-Frame-Options,
// which is set to "DENY" instead of its default
app.use(helmet({
frameguard: { action: 'DENY' },
}));
如果你想让 Helmet 完全忽略 X-Frame-Options
header:
// Sets all of the defaults except for X-Frame-Options
app.use(helmet({
frameguard: false,
}));
默认情况下,头盔负责11header秒,包括上面提到的两个。
头盔最重要,也是最难配置的,header是Content-Security-Policy
。这里不值得深入描述;我推荐阅读 MDN's introductory article.
头盔可以帮你设置Content-Security-Policy
header,你可以阅读更多关于on Helmet's docs的内容。这是一个简单的例子:
app.use(
helmet.contentSecurityPolicy({
directives: {
...helmet.contentSecurityPolicy.getDefaultDirectives(),
"script-src": ["'self'", "example.com"],
},
})
);
您还询问了 Access-Control-Allow-Origin
。这是叫做 Cross-Origin Resource Sharing 的一部分,头盔不会触及它。