Kann ein SWF (mit Urlloader) auf HTTPS -Webservice zugreifen?
-
21-09-2019 - |
Frage
Ich habe ein FLA (mit ActionScript 3.0), das ich in Blitz zusammenstelle. Ich verwende UrlRequest und Urlloader, um auf einen HTTP -Webservice zuzugreifen.
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http:test.webservice.com");
try {
loader.load(request);
} catch (error:Error) {
trace("Unable to load requested document.");
}
Dies funktioniert gut. Wenn ich jedoch versuche, auf eine HTTPS -Adresse zuzugreifen, bekomme ich ich
httpStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=0]
ioErrorHandler: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: https://test.webservice.com"]
Wie kann ich Daten von einem HTTPS -Webdienst abrufen? Muss die SWF auf einer SSL -gesicherten Seite gehostet werden?
Lösung
Wenn Sie den Flash -Debug -Player installieren, werden Sie wahrscheinlich Folgendes im Protokoll sehen:
** Security Sandbox Violation ***
Connection to https://www.example.com/service/ halted - not permitted from http://www.example.com/your.swf
Error: Request for resource at https://www.example.com/service/ by requestor from http://www.example.com/your.swf is denied due to lack of policy file permissions.
Standardmäßig kann ein SWF, das in einem HTTP gehostet wird, auf HTTPS nicht zugreifen -es wird als andere Domain angesehen.
Sie müssen die entsprechende Crossdomain.xml-Richtliniendatei einrichten, um zu überprüfen, ob der Inhaltstyp Text/* oder einen anderen weiße Wert ist. Darüber hinaus benötigen Sie eine Meta-Policy-Datei mit "Secure = false", mit der HTTPS von HTTP zugegriffen werden kann.
<allow-access-from domain="www.example.com" secure="false" />
Weitere Lesung:
Änderungen der Richtliniendatei in Flash Player 9 und Flash Player 10
Andere Tipps
Überprüfen Sie die Crossdomain -Richtlinie in der Aktionsdokumentation.
http://kb2.adobe.com/cps/142/tn_14213.html
Ein sicherer Server, der den Zugriff auf Filme ermöglicht, die über ein nicht sicheres Protokoll gehostet werden
Es ist nicht ratsam, HTTP -Inhalte zu ermöglichen, um auf HTTPS -Inhalte zuzugreifen. Diese Praxis kann die von HTTPS angebotene Sicherheit beeinträchtigen.
Es kann jedoch Fälle geben, in denen Legacy -Flash -Inhalte Zugriff auf Daten einer HTTPS -Site ermöglichen. Mit Flash Player 7 ist dies standardmäßig nicht mehr zulässig. Verwenden Sie das sichere Attribut in einem "Zulassen-Access-from" -Tag und setzen Sie es auf false.
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="www.company.com" secure="false" />
</cross-domain-policy>
Es wird als Crossdomain.xml gespeichert und auf der Site -Root des HTTPS -Servers platziert.