2016-06-23 22 views
0

Ich arbeite an einer Website, die Content-Security-Policy Header festlegen müssen, um die Website nicht über iframes eingebettet werden. Dies war das Ergebnis eines kürzlich durchgeführten PCI-Audits. Es gibt jedoch einen einzigen Endpunkt, den wir über Iframes einbetten können. Dieser Endpunkt macht einen Video-Player verfügbar.PCI-Konformität + Einbetten iframes + Sicherheitsrisiken

Die Lösung, die wir haben kommen mit, ist dies:

  1. Disallow für alle Seiten einbetten
  2. für die Spielerseite Einbettung zulassen

Apache vhost-Datei:

Header add Content-Security-Policy "default-src * data: 'unsafe-inline' 'unsafe-eval'; frame-ancestors 'self';" 

<Location /video-player/index.php> 
    Header set Content-Security-Policy "default-src * data: 'unsafe-inline' 'unsafe-eval'; frame-ancestors %{HTTP_REFERER}e;" 
</Location> 

Fragen

  1. Gibt es Sicherheitsrisiken bei der Verwendung der Zeichenfolge %{HTTP_REFERER}e direkt in der Kopfzeile?
  2. Gibt es eine Möglichkeit, diesen Wert innerhalb von Apache zu bereinigen?
  3. Gibt es einen besseren Weg zum Sonderfall nur diese eine URL? Leider können wir nicht einfach einen Platzhalter verwenden, da der Browser den Header ignoriert, wenn einer verwendet wird.

Antwort

0

Warum nicht einfach verwenden:

Header add Content-Security-Policy "default-src * data: 'unsafe-inline' 'unsafe-eval'; frame-ancestors 'self';" 

<Location /video-player/index.php> 
    Header set Content-Security-Policy "default-src * data: 'unsafe-inline' 'unsafe-eval';" 
</Location> 
+0

Weil Sie nicht einen Platzhalter für den Rahmen Vorfahren Wert verwenden können. Sie müssen einen tatsächlichen Domänennamen angeben. –

+0

Antwort aktualisiert. – SilverlightFox

+0

Das funktioniert, ist aber aus PCI-Sicht nicht strikt genug. Gute Idee, obwohl –