Как добавить заголовки в ответ Cloudfront? - PullRequest
1 голос
/ 01 августа 2020

Я тестирую свой веб-сайт, используя https://observatory.mozilla.org/analyze, и получил оценку F.

Причины:

Content Security Policy (CSP) header not implemented
X-XSS-Protection header not implemented 
X-Frame-Options (XFO) header not implemented    
...

Я обслуживаю свой веб-сайт с помощью облачного интерфейса.

Где Я поместил эти недостающие заголовки в облако?

введите описание изображения здесь

1 Ответ

1 голос
/ 01 августа 2020

Я бы рекомендовал использовать Lambda@Edge для добавления любых заголовков, которые вы ищете, к вашему исходному ответу, прежде чем он будет возвращен средству просмотра.

Это можно сделать очень просто как в приведенном ниже примере при добавлении в качестве события ответа Origin.

 import json
 
 def lambda_handler(event, context):
     response = event["Records"][0]["cf"]["response"]
     headers = response["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'}]; 
     
     response['headers'] = headers
 
     return response

Для получения дополнительной информации см. Добавление заголовков безопасности HTTP с использованием Lambda@Edge и Amazon CloudFront в блоге.

...