使用 Lambda@Edge 设置 HTTP Headers
Setting HTTP Headers with Lambda@Edge
出于安全目的,我正在尝试在我的网站上添加一些新的 http headers。该站点使用 Cloudfront 作为 CDN,我使用 Lamdba@Edge 运行 原始响应上的以下节点函数:
exports.handler = async (event, context) => {
const response = event.Records[0].cf.response;
const headers = response.headers;
//Set new headers
headers['strict-transport-security'] = [{key: 'Strict-Transport-Security', value: 'max-age=63072000; includeSubdomains; preload'}];
headers['content-security-policy'] = [{key: 'Content-Security-Policy', value: "default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'"}];
headers['x-content-type-options'] = [{key: 'X-Content-Type-Options', value: 'nosniff'}];
headers['x-frame-options'] = [{key: 'X-Frame-Options', value: 'DENY'}];
headers['x-xss-protection'] = [{key: 'X-XSS-Protection', value: '1; mode=block'}];
headers['referrer-policy'] = [{key: 'Referrer-Policy', value: 'same-origin'}];
return response;
};
我正在向函数添加 CloudFront 触发器并成功重新部署 CDN(根据 AWS 控制台),但新的 headers 未根据需要添加到站点。我觉得我正在查看缓存站点而不是最新站点。在 CDN 添加新 headers 之前,我是否需要清空缓存或类似内容?
如果有缓存,这些 headers 将不会被附加。如果他们以后必须附加到缓存之外,而不是将其移至查看器响应。
使缓存无效应该可以显示这些内容,但它们会在
之后被缓存
出于安全目的,我正在尝试在我的网站上添加一些新的 http headers。该站点使用 Cloudfront 作为 CDN,我使用 Lamdba@Edge 运行 原始响应上的以下节点函数:
exports.handler = async (event, context) => {
const response = event.Records[0].cf.response;
const headers = response.headers;
//Set new headers
headers['strict-transport-security'] = [{key: 'Strict-Transport-Security', value: 'max-age=63072000; includeSubdomains; preload'}];
headers['content-security-policy'] = [{key: 'Content-Security-Policy', value: "default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'"}];
headers['x-content-type-options'] = [{key: 'X-Content-Type-Options', value: 'nosniff'}];
headers['x-frame-options'] = [{key: 'X-Frame-Options', value: 'DENY'}];
headers['x-xss-protection'] = [{key: 'X-XSS-Protection', value: '1; mode=block'}];
headers['referrer-policy'] = [{key: 'Referrer-Policy', value: 'same-origin'}];
return response;
};
我正在向函数添加 CloudFront 触发器并成功重新部署 CDN(根据 AWS 控制台),但新的 headers 未根据需要添加到站点。我觉得我正在查看缓存站点而不是最新站点。在 CDN 添加新 headers 之前,我是否需要清空缓存或类似内容?
如果有缓存,这些 headers 将不会被附加。如果他们以后必须附加到缓存之外,而不是将其移至查看器响应。
使缓存无效应该可以显示这些内容,但它们会在
之后被缓存