X-Permitted-Cross-Domain-Policies

X-Permitted-Cross-Domain-Policies

Hlavička definuje politiku pro soubor XML, který obsahuje oprávnění k nakládání s daty v rámci domén (cross-domain).

Hlavička X-Permitted-Cross-Domain-Policies byla vytvořena pro Adobe Flash Player nebo Adobe Acrobat, ale je určena i pro jiné programy pracující se soubory flash a pdf. Pokud webový klient požádá o soubor hostovaný na konkrétní zdrojové doméně a tento obsah je směrován na jinou doménu, než je jeho vlastní, musí vzdálená doména hostit soubor zásad mezi různými doménami (domenaxyz.cz/crossdomain.xml), který uděluje přístup ke zdrojové doméně, aby klient mohl pokračovat v požadavku. Jedná se o dokument XML, který uděluje webovému klientovi oprávnění k práci s daty v rámci domén. Obvykle se definuje politika v master policy souboru, ale v případě nemožnosti zápisu do kořenového adresáře lze provést nastavení pomocí hlavičky X-Permitted-Cross-Domain-Policies.

Proč používat X-Permitted-Cross-Domain-Policies

Pokud pracujete s produkty Adobe, soubor crossdomain.xml je požadován například u HTTP streamingu pro Flash Player k oprávnění pro zpracování dat v rámci více domén.

Syntaxe

X-Permitted-Cross-Domain-Policies: "value"

Definice hlavičky X-Permitted-Cross-Domain-Policies

Hodnota "none" (výchozí)
X-Permitted-Cross-Domain-Policies: "none"

Nejsou povoleny žádné soubory zásad. Ani master policy soubor.

Hodnota "master-only"
X-Permitted-Cross-Domain-Policies: "master-only"

Je povolen pouze master policy soubor.

Hodnota "by-content-type"
X-Permitted-Cross-Domain-Policies: "by-content-type"

Jsou povoleny pouze soubory s Content-Type: text/x-cross-domain-policy. [HTTP/HTTPS only]

Hodnota "by-ftp-filename"
X-Permitted-Cross-Domain-Policies: "by-ftp-filename"

Jsou povoleny zásady v souboru crossdomain.xml. [FTP only]

Hodnota "all"
X-Permitted-Cross-Domain-Policies: "all"

Všechny soubory zásad na cílové doméně jsou povoleny.

Nastavení X-Permitted-Cross-Domain-Policies

.htaccess
# X-Permitted-Cross-Domain-Policies settings
Header set X-Permitted-Cross-Domain-Policies "none"
Nginx
add_header X-Permitted-Cross-Domain-Policies "master-only";

Užitečné zdroje

Ukázka crossdomain.xml

Ukázka souboru twitter.com/crossdomain.xml

<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
  <allow-access-from domain="twitter.com"/>
  <allow-access-from domain="api.twitter.com"/>
  <allow-access-from domain="search.twitter.com"/>
  <allow-access-from domain="static.twitter.com"/>
  <site-control permitted-cross-domain-policies="master-only"/>
  <allow-http-request-headers-from domain="*.twitter.com" headers="*" secure="true"/>
</cross-domain-policy>