Amazon web services 防止;单击“劫持”;又名;“用户界面补救攻击”;通过AWS安全web服务

Amazon web services 防止;单击“劫持”;又名;“用户界面补救攻击”;通过AWS安全web服务,amazon-web-services,amazon-ec2,Amazon Web Services,Amazon Ec2,可以通过WAF或CloudFront等AWS安全服务防止点击劫持或“UI补救攻击” 众所周知,某些安全HTTP头可以添加到用户请求中,这些请求将指示浏览器强制执行某些安全措施,如下所示: 严格的运输安全 内容安全策略 X-Content-Type-Options X-Frame-Options X-XSS-Protection 推荐人政策 可以在后端代码级别配置这些参数,但是,我想知道是否希望不在应用程序级别设置这些参数,这可以在AWS级别使用任何安全网关服务(如WAF或CloudFron

可以通过WAF或CloudFront等AWS安全服务防止点击劫持或“UI补救攻击”

众所周知,某些安全HTTP头可以添加到用户请求中,这些请求将指示浏览器强制执行某些安全措施,如下所示:

  • 严格的运输安全
  • 内容安全策略
  • X-Content-Type-Options
  • X-Frame-Options
  • X-XSS-Protection
  • 推荐人政策

可以在后端代码级别配置这些参数,但是,我想知道是否希望不在应用程序级别设置这些参数,这可以在AWS级别使用任何安全网关服务(如WAF或CloudFront)来完成吗?

您可以在服务器级别通过添加标题来响应以下链接中提到的内容:

编辑:这有一个:

对于那些现在出现的,你可以使用Lambda@Edge要添加HSTS头以及其他“frame buster”头,如
x-frame-options
referrer policy

这是相当便宜的,计算出每百万个请求大约30美分

这详细描述了如何执行此操作

此处重复整个内容太长,但基本上描述了以下流程:

以下是该过程的工作原理:

  • 浏览者导航到网站
  • 在CloudFront服务缓存中的内容之前,它将触发与查看器请求触发器关联的任何Lambda函数来触发该行为
  • CloudFront提供缓存中的内容(如果可用),否则转到步骤4
  • 只有在CloudFront缓存“未命中”后,才会为该行为触发源请求触发器
  • S3origin返回内容
  • 在从S3返回内容之后但在CloudFront中缓存之前,将触发源响应触发器
  • 在CloudFront中缓存内容后,将触发查看器响应触发器,这是查看器接收内容之前的最后一步
  • 查看器接收内容
  • 同样,如果链接到的博客消失,下面的代码是通过Lambda添加安全头的示例(记住这是由CloudFront使用Lambda@Edge整合):

    'use strict';
    exports.handler = (event, context, callback) => {
        
        //Get contents of response
        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 modified response
        callback(null, response);
    };