Ich versuche, einen Content-Security-Policy-Header für eine HTML-Datei zu setzen, die ich über s3 / cloudfront diene. Ich verwende die webbasierte AWS-Konsole. Immer wenn ich versuche, den Header hinzuzufügen:
es scheint es nicht zu respektieren. Was kann ich tun, um sicherzustellen, dass diese Kopfzeile angezeigt wird?
Wenn Sie über CloudFront testen, haben Sie sichergestellt, dass Sie die zwischengespeicherten Objekte ungültig gemacht haben? Können Sie versuchen, eine komplett neue Datei hochzuladen und dann versuchen, über CF darauf zuzugreifen und zu sehen, ob die Kopfzeile immer noch nicht da ist?
Aktualisieren
Scheint so, als würden benutzerdefinierte Metadaten nicht wie erwartet funktionieren, wie in docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html beschrieben. Alle Metadaten, die nicht von S3 unterstützt werden (die im Dropdown-Menü angezeigten), müssen mit dem Präfix x-amz-meta -
versehen werdenIch habe das gleiche Problem (mit S3 / CloudFront) und es scheint, dass es derzeit keine Möglichkeit gibt, dies einfach einzurichten.
S3 hat eine Whitelist der Header erlaubt, und Content-Security-Policy ist nicht darauf. Es stimmt zwar, dass Sie die Präfix x-amz-meta- Content-Security-Policy verwenden können, dies ist jedoch nicht hilfreich, da es keine Browser-Unterstützung dafür gibt.
Es gibt zwei Möglichkeiten, die ich sehen kann.
1) Sie können den HTML-Inhalt von einem Webserver auf einer EC2-Instanz bereitstellen und diesen als einen anderen CloudFront-Ursprung einrichten. Nicht wirklich eine großartige Lösung.
2) Fügen Sie den CSP als Meta-Tag in Ihr HTML-Dokument ein:
%Vor%Diese Option wird von Browsern nicht so häufig unterstützt, scheint aber sowohl mit Webkit als auch mit Firefox zu funktionieren, so dass der aktuelle Chrome, Firefox, Safari (und IOS 7 Safari) dies zu unterstützen scheint.
Ich wählte 2, da es die einfachere / billigere / schnellere Lösung war und ich hoffe, dass AWS den CSP-Header in Zukunft hinzufügen wird.
Tags und Links amazon-s3 amazon-web-services amazon-cloudfront