Ich habe eine Website unter pixie.strd6.com und Bilder gehostet über Amazon S3 mit einem CNAME für images.pixie.strd6.com.HTML5 Canvas getImageData und die gleiche Herkunft Richtlinie
Ich möchte in der Lage sein, diese Bilder zu einem HTML5 Leinwand zu ziehen und die getImageData Methode aufrufen, aber es wirft Error: SECURITY_ERR: DOM Exception 18
ich window.domain = "pixie.strd6.com"
versucht haben, Einstellung, aber das hat keine Wirkung.
Zusätzlich $.get("http://dev.pixie.strd6.com/sprites/8516/thumb.png?1293830982", function(data) {console.log(data)})
wirft auch einen Fehler: XMLHttpRequest cannot load http://dev.pixie.strd6.com/sprites/8516/thumb.png?1293830982 . Origin http://pixie.strd6.com is not allowed by Access-Control-Allow-Origin.
Idealer HTML5-Canvas würde nicht blockieren getImageData
von Sub-Domains aufrufen. Ich habe in S3 nachgesehen, einen Access-Control-Allow-Origin-Header festzulegen, aber nicht erfolgreich.
Jede Hilfe oder Workarounds werden sehr geschätzt.
Diese gleichen Ursprung Politik ist das Dümmste, was verwenden werden je . Wenn ich ein bösartiges Stück JavaScript bin und ich schädliche Daten laden will, werde ich einfach ein beliebiges Skript-Tag in die Seite einfügen, nicht "s3kri7 c0mm4nd5" aus Bilddaten lesen. Die einzigen Leute, die Bilddaten lesen möchten, sind clientseitige Entwickler. Was das Stehlen von "streng geheimen Bilddaten" von einem VPN betrifft, ist das Keylogging sehr viel verheerender, wenn Ihre Site bereits xssd ist. All dieser "Schutz" dient dazu, legitime Entwickler zu erschweren, die versuchen, JavaScript dazu zu bringen, die einfachsten Aufgaben zu erledigen. –
Die SOP schützt hier vor einem legitimen Angriffsvektor.Angenommen, Sie haben ein privates Fotoalbum auf einer Foto-Sharing-Site (oder überprüfen Sie Bilder, die in Ihrem Online-Banking gespeichert sind): ohne schmutzigen Canvas-Schutz * hätte jede Seite im Web *, die Sie besuchen, die Bilder URL und Sie waren angemeldet, weil Anfragen, die von '' Tags ** gesendet wurden, Ihre Cookies verwenden **. Das Problem hier ist nicht kompromittiert XSS'd Websites; Das Problem ist, dass * jede Seite im Web * mithilfe Ihrer Authentifizierungscookies Bilder auf einer Zeichenfläche abrufen und lesen kann. – apsillers
** tl; dr: ** So wie es jetzt aussieht, kann jede domänenübergreifende Website * Ihre authorisierten Bilder (private Fotos, Scheckbilder usw.) in einem '' Tag anzeigen, aber dank der SOP, sie können den Inhalt dieser Bilder in einer Zeichenfläche nicht * lesen *, um sie zB auf einem Server zu speichern. – apsillers