加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 在AWS CloudFront和S3上配置X-Frame-Options响应标

发布时间:2020-12-17 18:02:59 所属栏目:安全 来源:网络整理
导读:我试图为由云端服务的亚马逊s3中托管的角度js应用程序设置X-Frame-Options HTTP响应头,我有可能做到吗? 解决方法 您可以使用 Lambda@Edge函数将x-frame-options标头添加到CloudFront / S3的响应中. lambda代码在本地边缘位置运行,但需要在us-east-1区域中创
我试图为由云端服务的亚马逊s3中托管的角度js应用程序设置X-Frame-Options HTTP响应头,我有可能做到吗?

解决方法

您可以使用 Lambda@Edge函数将x-frame-options标头添加到CloudFront / S3的响应中. lambda代码在本地边缘位置运行,但需要在us-east-1区域中创建和维护.

此处的示例代码使用nodeJS 6.10添加响应头

'use strict'; 
 exports.handler = (event,context,callback) => {
   const response = event.Records[0].cf.response; 
   const headers = response.headers; 
   response.headers['x-frame-options'] = [{"key":"X-Frame-Options","value":"SAMEORIGIN"}]; 
   console.log(response.headers); 
   callback(null,response);
 };

创建Lambda的最终版本,然后将Lambda Version的触发器配置设置为路径模式行为的CloudFront原始响应事件类型.

示例代码将事件记录到CloudWatch日志服务以进行调试.如果您还没有,则需要设置lambda执行IAM角色,该角色允许策略允许edgelambda.amazonaws.com和lambda.amazonaws.com承担CloudWatch日志操作.

允许将日志写入CloudWatch的基本Lambda执行策略:

{
    "Version": "2012-10-17","Statement": [
        {
            "Action": [
                "logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"
            ],"Resource": "arn:aws:logs:*:*:*","Effect": "Allow"
        }
    ]
}

信任关系允许Lambda和Lambda @ Edge承担角色:

{
  "Version": "2012-10-17","Statement": [
    {
      "Effect": "Allow","Principal": {
        "Service": [
          "edgelambda.amazonaws.com","lambda.amazonaws.com"
        ]
      },"Action": "sts:AssumeRole"
    }
  ]
}

如果AWS简单地允许在GUI中设置x-frame-options标头会更好,但在此之前,此解决方案可以正常运行,并且可以让您的安全审核员满意.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读