XSS - Zugriff per JS auf Inhalte einer externen XML Datei
limepix
- javascript
Hi Folks!
Mein Vorhaben:
Eine JavaScript "XBOX-LIVE-Contact-List".
Da hat ein gewisser Duncan McKenzie eine REST API zur Verfügung gestellt, auf die eigentlich jeder Zugriff hat... Zu finden ist die unter folgendem Link:
click
Ich habe folgendes Problem:
Ich möchte per JavaScript auf dieses XML File zugreifen. Ich verwende die dojo jslibrary in der Version 1.4.
Per xhrGet kann man nicht zugreifen, da sonst der Browser meckert wegen XSS. Ich habe nun eine andere Variante gefunden, mit der man quasi "RAW-GETs" machen kann - Das erlauben die Browser wohl...
Trotzdem bekomm ich seltsame Fehlermeldungen und weiß nicht wie ich mit den Daten die Ich zurück bekomm umgehen soll.
Mein JavaScript sieht bislang folgendermaßen aus:
dojo.require("dojo.io.script");
// http://xboxapi.duncanmackenzie.net/gamertag.ashx?GamerTag=limepix
dojo.addOnLoad(function(){
dojo.connect(dojo.byId('suche'), 'onclick', function(){
var targetNode = dojo.byId("result");
//The parameters to pass to xhrGet, the url, how to handle it, and the callbacks.
var jsonpArgs = {
url: "http://xboxapi.duncanmackenzie.net/gamertag.ashx?GamerTag=limepix",
load: function(response, ioArgs) {
console.log(response);
targetNode.innerHTML = "<pre>" + dojo.toJson(response, true) + "</pre>";
return response;
},
error: function(response, ioArgs) {
console.log(response);
return response;
}
};
console.log(jsonpArgs);
dojo.io.script.get(jsonpArgs);
});
});
beim Ausführen der Suche wird der Inhalt des XMLs auch in ein Script Tag im Header mit eingebunden, allerdings schmeisst der Firebug mit Fehlern nur so um sich.
missing ; before statement
[Break on this error] <XboxInfo xmlns:xsi="http://www.w3.org...d="http://www.w3.org/2001/XMLSchema">\n
Error: Can't serialize DOM nodes { message="Can't serialize DOM nodes", more...}
Kennst sich hier noch jemand mit dem dojo Toolkit aus? Bzw hat jemand Ideen wie man auf einzelne Elemente dieses XMLs anderweitig zugreifen kann?
Die Infos die mich von dort interesssieren wären z.B
<Info>Last seen 3 hours ago playing Xbox 360 Dashboard</Info>
<ProfileUrl>http://live.xbox.com/member/Festive%20Turkey</ProfileUrl>
−
<TileUrl>
http://avatar.xboxlive.com/avatar/Festive%20Turkey/avatarpic-l.png
</TileUrl>
...
Beste Grüße
und vielen Dank schon mal im Vorraus
limepix
Hi,
Per xhrGet kann man nicht zugreifen, da sonst der Browser meckert wegen XSS. Ich habe nun eine andere Variante gefunden, mit der man quasi "RAW-GETs" machen kann - Das erlauben die Browser wohl...
Du meinst also, dass ein SCRIPT-Element erzeugt wird, und die zu ladende Ressource als dessen src-Attribut angegeben wird?
beim Ausführen der Suche wird der Inhalt des XMLs auch in ein Script Tag im Header mit eingebunden, allerdings schmeisst der Firebug mit Fehlern nur so um sich.
missing ; before statement
[Break on this error] <XboxInfo xmlns:xsi="http://www.w3.org...d="http://www.w3.org/2001/XMLSchema">\n
Frage: Ist das JavaScript-Code?
Antwort: Nein.
Etwas schwierigere Frage: Ergibt es dann Sinn, das als Inhalt eines SCRIPT-Elementes laden zu lassen?
MfG ChrisB
Hallo
Danke erst mal für die schnelle Antwort.
Du meinst also, dass ein SCRIPT-Element erzeugt wird, und die zu ladende Ressource als dessen src-Attribut angegeben wird?
Ob da nun ein zusätzliches <script>...</script> erzeugt wird oder nicht, is mir erst einmal egal. Ich möchte einfach mit einem javascript-xml-parser auf die inhalte einer XML Datei zugreifen, auf die ich nur Zugriff per URL hab´.
Frage: Ist das JavaScript-Code?
Antwort: Nein.
Richtig, das ist kein JavaScript! Das is die Ausgabe aus dem Firebug.
Und ob das Sinn macht oder nicht, weiß ich eben selber nicht so genau...
Wie würdest du denn auf die Inhalte einer XML Datei per Javascript zugreifen? Da ich mich selbst in Sachen JavaScript, hauptsächlich mit dem Dojo Toolkit beschäftige, hab ich eben auch in diesem nach Lösungen für mein Problem gesucht. Ich bin allerding offen für anderes ;-)
MfG
limepix
Hi,
Du meinst also, dass ein SCRIPT-Element erzeugt wird, und die zu ladende Ressource als dessen src-Attribut angegeben wird?
Ob da nun ein zusätzliches <script>...</script> erzeugt wird oder nicht, is mir erst einmal egal.
Ich wollte von dir wissen, wie das bei deiner derzeitigen Umsetzung konkret aussieht.
Wie würdest du denn auf die Inhalte einer XML Datei per Javascript zugreifen?
Per XMLHttpRequest/AJAX.
Dass die Daten dabei von der gleichen Domain wie das aktuelle Dokument stammen müssen, kannst du umgehen, wenn du auf deinem Server ein Script ablegst, welches die externe Ressource einliest und durchreicht.
MfG ChrisB
Hallo nochmal
Ich wollte von dir wissen, wie das bei deiner derzeitigen Umsetzung konkret aussieht.
Es geht nicht. Das was ich vorhabe von der SOP verhindert. Habs mittlerweile selber entdeckt, wo mein Denkfehler liegt...
Per XMLHttpRequest/AJAX.
Dass die Daten dabei von der gleichen Domain wie das aktuelle Dokument stammen müssen, kannst du umgehen, wenn du auf deinem Server ein Script ablegst, welches die externe Ressource einliest und durchreicht.
Und genau das ist mein Problem. Ich habe keinerlei Zugriff auf den Server...
Das Ist sowas wie ein kleiner HomepageBaukasten, in dem man "eigene Inhalte" in Form von HTML Seiten (+ Javascript) hinzufügen kann.
Vielleicht besorg ich mir mal irgendwo bisserl Webspace, wo man kostengünstig (oder sogar umsonst?!? jemand ne ide??) webapps hosten kann.
Meine erste Idee ging in Richtung GoogleAppEngine, allerdings tut die sich nach wie vor mit Grails Applications ziemlich schwer :-( ...
Danke nochmal für die Antworten!
MfG
limepix