Kann jemand ein wohlgeformtes Beispiel für crossdomain.xml posten?


80

Ich habe gelesen, dass Adobe crossdomain.xml in Flash 9-10 strenger gemacht hat, und ich frage mich, ob mir jemand eine Kopie von einer einfügen kann, von der er weiß, dass sie funktioniert. Probleme beim Auffinden eines aktuellen Beispiels auf der Adobe-Website.


Dies mag gefährlich offensichtlich erscheinen, aber als Flash-Entwickler mit 10 Jahren Erfahrung kann ich Ihnen sagen, dass jede Richtliniendatei, die ich jemals implementiert habe, nicht einmal so getan hat, als würde sie funktionieren ... bis heute. Es stellt sich heraus, dass Sie die Richtliniendatei tatsächlich selbst laden müssen. In den Dokumenten klingt es so, als würde Flash automatisch nach crossdomain.xml-Dateien suchen, bevor ein SecuritySandbox-Fehler auftritt. Wenn Sie also Probleme haben, stellen Sie sicher, dass Sie die Richtliniendatei
laden

Antworten:


103

Folgendes habe ich für die Entwicklung verwendet:

<?xml version="1.0" ?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>

Dies ist ein sehr liberaler Ansatz, aber für meine Bewerbung in Ordnung.

Achten Sie, wie andere weiter unten ausgeführt haben, auf die damit verbundenen Risiken.


30
Dies funktioniert in gewissem Sinne, aber bitte beachten Sie die Risiken: Dies bedeutet, dass jede Website im Namen des Benutzers Anfragen, Cookies und alles an Ihre Website senden und die Antwort ohne Probleme lesen kann. Für die meisten Web-Apps ist dies eine große Sicherheitslücke. Während dieser Ansatz seinen Platz hat, kennen Sie bitte die Risiken und gehen Sie bei Bedarf strikt auf die Whitelist (was fast immer für Produktions-Apps gilt).
Matchu

3
Sie nicht diese außerhalb Entwicklung verwenden. Dies entspricht genau dem Beispiel einer "schlecht konfigurierten crossdomain.xml" aus dem gehärteten PHP-Projekt .
Greg K

2
Wenn Sie die Datei selbst
bereitstellen

Es gibt einen (und nur einen) Umstand, unter dem dies in einer Produktionsumgebung akzeptabel wäre: Wenn Sie es in einer Domäne installieren, die nur statische Dateien für die Verwendung von Anwendungen in anderen Domänen bereitstellt. Beispiel: Sie haben eine Subdomain "images.mydomain.com", die alle Bilder Ihrer Site (vermutlich unter Verwendung einer Art CDN) und sonst nichts bereitstellt .
Periata Breatta

34

Wenn Sie Webservices verwenden, benötigen Sie außerdem das Element 'allow-http-request-headers-from'. Hier ist unsere Standardrichtlinie für die Entwicklung "Alles zulassen".

<?xml version="1.0" ?>
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="master-only"/>
  <allow-access-from domain="*"/>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

22
Vielleicht sollten Sie erwähnen, ob / wie dies gefährlich sein könnte?
Philfreo

Wo diese XML-Datei zu speichern
Sajitha Rathnayake

Ich verwende immer das Schema von Adobe. Hier ist ein Beispiel für eine lose: http://stackoverflow.com/a/26433744/257319

Speichern Sie auf der Domain-Ebene, die Sie beeinflussen möchten. z.B. example.com/crossdomain.xml
iedoc

30

Schauen Sie sich Twitter an:

http://twitter.com/crossdomain.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>


9

In der Produktionsstätte scheint dies geeignet:

<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="www.mysite.com" />
<allow-access-from domain="mysite.com" />
</cross-domain-policy>

5

Eine Version von crossdomain.xml wurde früher mit dem HTML5 Boilerplate verpackt, das das Produkt langjähriger iterativer Entwicklung und kombinierten Community-Wissens ist. Es wurde jedoch inzwischen aus dem Repository gelöscht. Ich habe es hier wörtlich kopiert und einen Link zum Commit eingefügt, wo es unten gelöscht wurde.

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <!-- Read this: https://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->

  <!-- Most restrictive policy: -->
  <site-control permitted-cross-domain-policies="none"/>

  <!-- Least restrictive policy: -->
  <!--
  <site-control permitted-cross-domain-policies="all"/>
  <allow-access-from domain="*" to-ports="*" secure="false"/>
  <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
  -->
</cross-domain-policy>

Gelöscht in # 1881
https://github.com/h5bp/html5-boilerplate/commit/58a2ba81d250301e7b5e3da28ae4c1b42d91b2c2

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.