JavaScript: Sicherheitsfehler
Tom
- browser
0 plan_B0 plan_B0 Tom0 Der Martin
Hello,
ich habe da dieses einfache Beispiel für "Multiupload"
http://selfhtml.bitworks.de/multiupload.html
Es können mehrere Bilder hochgeladen werden und man bekommt eine einfache Vorschau.
Im IE funktioniert das auch. Leider verursacht der Firefox 2.0 eine Fehlermeldung in der JavaScript-Konsole
Sicherheitsfehler: Inhalt auf http://selfhtml.bitworks.de/multiupload.html darf file:///S:/GRAFIK/Werbung/MAUS/FESTE/Out_of_the_box.cdr nicht laden oder verlinken.
Wie krieg ich das weg?
Schließlich ist es der Nutzer selber, welcher durch Klicken des Durchsuchen-Buttons das Bild auswählt. Es wird ja auch hochgeladen. Nur angezeigt wird es nicht.
Harzliche Grüße aus dem
verschneiten Sankt Andreasberg
und Frohe Weihnachtszeit
Tom
Hallo,
du solltest dir mal ausgeben lassen, was hier drin steht: ~~~javascript
document.getElementById(imgNr).value
document.getElementById('img1').src='file://' + document.getElementById(imgNr).value;
das ist bei jedem Browser anders.
übrigens Reihenfolge beachten:
<table>
<thead>
<tfoot>
<tbody>
....
Gruß plan\_B
--
\*®\*´¯`·.¸¸.·
Hello,
du solltest dir mal ausgeben lassen, was hier drin steht: [code]
document.getElementById(imgNr).valuedocument.getElementById('img1').src='file://' + document.getElementById(imgNr).value;
Da steht genau das drin, was soll.
Das muss an der Policy liegen.
Hab ich wirklich keine Idee, wie ich das Problemchen beseitigen kann...
Harzliche Grüße aus dem
verschneiten Sankt Andreasberg
und Frohe Weihnachtszeit
Tom
Hallo,
Da steht genau das drin, was soll.
ich bin mit Opera unterwegs
Das muss an der Policy liegen.
Hab ich wirklich keine Idee, wie ich das Problemchen beseitigen kann...
es wird (darf) nicht funktionieren.
Gruß plan_B
Hallo,
Im IE funktioniert das auch. Leider verursacht der Firefox 2.0 eine Fehlermeldung in der JavaScript-Konsole
Sicherheitsfehler: Inhalt auf http://selfhtml.bitworks.de/multiupload.html darf file:///S:/GRAFIK/Werbung/MAUS/FESTE/Out_of_the_box.cdr nicht laden oder verlinken.
hatte erst gedacht, es wäre ein Protokollfehler.
Aber richtige Browser dürfen das nicht zulassen. Auf die Art könntest du ja jede Datei meiner Platte in deine Seite einbauen und ausspähen.
Gruß plan_B
Hello,
Aber richtige Browser dürfen das nicht zulassen. Auf die Art könntest du ja jede Datei meiner Platte in deine Seite einbauen und ausspähen.
Wie sollte ich das machen?
In das File-Feld nimmt der Firefox die ausgewählten Dateien einwandfrei auf.
Dem img-Element kann ich sie dann nicht zuweisen?
Das Element verlässt doch nicht den Host, weil Du es im Browser anzeigen lässt.
Um es zu stehlen, müsste ich es in einen Post einbauen können.
Ist das denn möglich?
Außerdem steht der Pfad schon ausgewählt im Filefeld
Harzliche Grüße aus dem
verschneiten Sankt Andreasberg
und Frohe Weihnachtszeit
Tom
Hallo
Aber richtige Browser dürfen das nicht zulassen. Auf die Art könntest du ja jede Datei meiner Platte in deine Seite einbauen und ausspähen.
Wie sollte ich das machen?
In das File-Feld nimmt der Firefox die ausgewählten Dateien einwandfrei auf.
Dem img-Element kann ich sie dann nicht zuweisen?
Das Element verlässt doch nicht den Host, weil Du es im Browser anzeigen lässt.
Um es zu stehlen, müsste ich es in einen Post einbauen können.
Darf JavaScript auf Dateien des lokalen Dateisystems lesend zugreifen (um sie z.B. im Browser darzustellen)?
Tschö, Auge
Hello,
Hallo
Aber richtige Browser dürfen das nicht zulassen. Auf die Art könntest du ja jede Datei meiner Platte in deine Seite einbauen und ausspähen.
Wie sollte ich das machen?
In das File-Feld nimmt der Firefox die ausgewählten Dateien einwandfrei auf.
Dem img-Element kann ich sie dann nicht zuweisen?
Das Element verlässt doch nicht den Host, weil Du es im Browser anzeigen lässt.
Um es zu stehlen, müsste ich es in einen Post einbauen können.Darf JavaScript auf Dateien des lokalen Dateisystems lesend zugreifen (um sie z.B. im Browser darzustellen)?
Das ist doch hier gar nicht die Frage.
Die Frage muss lauten:
Darf JavaScript sich aus seinem eigenen Cache etwas herausholen, dass der User des Browsers dort vorher durch bewusste Handlung (Auswahldialog) hineingetan hat?
Und die beantworte ich eindeutig mit "Ja".
Es ist also nur reine Schikane des Firefox, dass es das nicht unterstützt.
Harzliche Grüße aus dem
verschneiten Sankt Andreasberg
und Frohe Weihnachtszeit
Tom
Hallo
Aber richtige Browser dürfen das nicht zulassen. Auf die Art könntest du ja jede Datei meiner Platte in deine Seite einbauen und ausspähen.
Wie sollte ich das machen?
In das File-Feld nimmt der Firefox die ausgewählten Dateien einwandfrei auf.
Dem img-Element kann ich sie dann nicht zuweisen?
Das Element verlässt doch nicht den Host, weil Du es im Browser anzeigen lässt.
Um es zu stehlen, müsste ich es in einen Post einbauen können.Darf JavaScript auf Dateien des lokalen Dateisystems lesend zugreifen (um sie z.B. im Browser darzustellen)?
Das ist doch hier gar nicht die Frage.
Sicher?
Die Frage muss lauten:
Darf JavaScript sich aus seinem eigenen Cache etwas herausholen, dass der User des Browsers dort vorher durch bewusste Handlung (Auswahldialog) hineingetan hat?
Nur mal zur Klarstellung: Wenn ich innnerhalb eines HTML-Formulars eine Datei zum hochladen auf den Server bestimme (das ist ja die eigentliche Funktion des Dateiuploadfeldes), steht der _Inhalt_ der Datei und nicht nur deren _Pfad_ JavaScript zur Verfügung?
Sprich: Das Uploadfeld nimmt im Moment der Auswahl einer bestimmten Datei nicht deren lokalen Pfad sondern ihren Inhalt selbst auf? Oder wird das nicht doch im Moment des Absendens des Formulars vom Browser geregelt und zuvor findet sich nur der Pfad der Datei im Formular?
Tschö, Auge
Hello,
Nur mal zur Klarstellung: Wenn ich innnerhalb eines HTML-Formulars eine Datei zum hochladen auf den Server bestimme (das ist ja die eigentliche Funktion des Dateiuploadfeldes), steht der _Inhalt_ der Datei und nicht nur deren _Pfad_ JavaScript zur Verfügung?
Sprich: Das Uploadfeld nimmt im Moment der Auswahl einer bestimmten Datei nicht deren lokalen Pfad sondern ihren Inhalt selbst auf? Oder wird das nicht doch im Moment des Absendens des Formulars vom Browser geregelt und zuvor findet sich nur der Pfad der Datei im Formular?
Der _Inhalt_ dieser Datei kann JavaScript doch genauso zur Verfügung stehen, wie der Inhalt des Bildes, dass der Browser anzuzeigen hat.
Kommt man an den Inhalt von Bildern mit JavaScript heran?
Kann man Bilder mit JavaScript manipulieren?
Dafür kann ich beim besten Willen keine bestätigung finden.
Größenänderungen ja, aber die werden "in Auftrag gegeben".
Warum sollte also JavaScript dem Image-Element also nicht eine Source zuweisen dürfen, die vom Benutzer freigegeben wurde?
Harzliche Grüße aus dem
verschneiten Sankt Andreasberg
und Frohe Weihnachtszeit
Tom
Der _Inhalt_ dieser Datei kann JavaScript doch genauso zur Verfügung stehen, wie der Inhalt des Bildes, dass der Browser anzuzeigen hat.
Solange nichts tatsächlich hochgeladen wurde, steht nichts zur Verfügung und danach erstmal nur dem Server. Das kann man dann aber natürlich ändern.
Kommt man an den Inhalt von Bildern mit JavaScript heran?
Kann man Bilder mit JavaScript manipulieren?
Nur die Größe, soweit ich weiß, Malen ist nicht erlaubt. Zumindest bei den gängigen Bildformaten.
Größenänderungen ja, aber die werden "in Auftrag gegeben".
Das verstehe ich nun nicht. Was meinst du damit?
Warum sollte also JavaScript dem Image-Element also nicht eine Source zuweisen dürfen, die vom Benutzer freigegeben wurde?
Die wird erst beim Hochladen freigegeben, dann steht sie z.B. dem Server zur Verfügung (und somit bei verfügbarem JavaScript und entsprechenden Servertechniken auch dem Client).
Hi,
Darf JavaScript auf Dateien des lokalen Dateisystems lesend zugreifen (um sie z.B. im Browser darzustellen)?
Darf Javascript ueber Domaingrenzen hinweg auf Ressourcen zugreifen?
Ich kann einem Image-Objekt doch nichts desto trotz eine neue Quelle zuweisen, die auserhalb der aktuellen Domain liegt. Warum sollte das bei lokal liegenden Bilddateien anders sein?
MfG ChrisB
Hello,
Darf JavaScript auf Dateien des lokalen Dateisystems lesend zugreifen (um sie z.B. im Browser darzustellen)?
Darf Javascript ueber Domaingrenzen hinweg auf Ressourcen zugreifen?
Ich kann einem Image-Objekt doch nichts desto trotz eine neue Quelle zuweisen, die auserhalb der aktuellen Domain liegt. Warum sollte das bei lokal liegenden Bilddateien anders sein?
Das dachte ich auch. Aber entweder ich hab es falsch gemacht, oder Firefox mag mich nicht.
Wer kennnt denn eine Alternative für diese Zuweisung, die auch in Firefox funktioniert?
Harzliche Grüße aus
Sankt Andreasberg
und Guten Rutsch
Tom
Hi,
Sicherheitsfehler: Inhalt auf http://selfhtml.bitworks.de/multiupload.html darf file:///S:/GRAFIK/Werbung/MAUS/FESTE/Out_of_the_box.cdr nicht laden oder verlinken.
Auf die Art könntest du ja jede Datei meiner Platte in deine Seite einbauen und ausspähen.
Nein. Wenn im Quellcode nur z.B. ein Bild oder ein JS über file:// eingebunden wird, sehe ich darin überhaupt kein Problem - der Browser lädt diese Datei dann direkt vom lokalen Filesystem des Clients, und der Server sieht nie, dass die Datei überhaupt geladen wird, geschweige denn den Dateiinhalt.
Die gesamte Konstellation ist eine rein clientseitige Angelegenheit. Sogar ein derart eingebundenes Javascript würde -wenn es denn funktionierte- im Kontext der Website laufen und hätte, sobald es geladen ist, keinerlei Zugriff mehr auf die lokale Maschine.
So long,
Martin
Die gesamte Konstellation ist eine rein clientseitige Angelegenheit. Sogar ein derart eingebundenes Javascript würde -wenn es denn funktionierte- im Kontext der Website laufen und hätte, sobald es geladen ist, keinerlei Zugriff mehr auf die lokale Maschine.
Es ist dann aber möglich zu überprüfen, ob die Datei nun geladen wurde oder nicht. Man kann also die Existenz von Dateien überprüfen, was sich natürlich wunderbar für Tracking (zumindest in speziellen Fällen) und zum Aufspüren installierter Software also auch von Schwachstellen eignet.
Hello,
Es ist dann aber möglich zu überprüfen, ob die Datei nun geladen wurde oder nicht. Man kann also die Existenz von Dateien überprüfen, was sich natürlich wunderbar für Tracking (zumindest in speziellen Fällen) und zum Aufspüren installierter Software also auch von Schwachstellen eignet.
Der Pfad zur Datei soll nur dann ins Source-Attribut des Image-Elementes übernommen werden, wenn sie vorher mittels Auswahldialog ins File-Element eingetragen wurde. Das gibt erstens immer noch keinen Einblick in den Inhalt der Datei, zweitens wäre ein Request dafür notwenig [1] und drittens würde dieser mit hoher Wahrscheinlichkeit sowieso gleich durchgeführt werden durch den User.
[1] Was allerdings AJAX in diesem Zusammenhang möglich macht, weiß ich noch nicht. Auf welche Elemente hat AJAX Zugriff und wann?
Harzliche Grüße aus dem
verschneiten Sankt Andreasberg
und Frohe Weihnachtszeit
Tom