| 

.NET C# Java Javascript Exception

1
Hallo,
ich habe ein Problem bei der Zugriffsberechtigung von CSV-Dateien.

In der htaccess Datei habe ich folgenden Code geschrieben:
<FilesMatch "\.(csv|txt|xml)$">
order allow,deny
deny from all
Allow from localhost
</FilesMatch>


Der direkte Zugriff ist nun auch nicht mehr möglich.

Jedoch hat nun auch "Amcharts" ,ein Chart-Script (JavaScript), keinen Zugriff mehr auf die Dateien.

Hat jemand eine Idee, ob es per FilesMatch (htaccess) möglich ist, die Zugriff von außen zu sperren, jedoch für Zugriffe vom eigenen Server zu erlauben?

// EDIT

Kann man evtl. die Funktion zum laden der CSV-File umschreiben, dass kein http-Zugriff statt findet, sonder per direktem Pfad?
loadCSV("/test/test.csv?"+timestamp.getTime()); 

function loadCSV(file) {
if (window.XMLHttpRequest) {
// IE7+, Firefox, Chrome, Opera, Safari
var request = new XMLHttpRequest();
}
else {
// code for IE6, IE5
var request = new ActiveXObject('Microsoft.XMLHTTP');
}
// load
request.open('GET', file, false);
request.send();
parseCSV(request.responseText);
}
05.03.2012
chrispo 275 7
3 Antworten
4
Wenn Du z. B. eine PHP Datei auf dem Server ablegst, die bei einem entsprechenden (Ajax-)Request die csv Datei ausliefert? Dabei könntest Du irgendwelche Validierungen durchführen: Request muss mit bestimmtem UserAgent erfolgen, etc.

Allerdings könnte man auch alle diese Dinge faken. Denn wer den JavaScript Code lesen kann, sieht ja genau, wie er die Abfrage aufbauen muss. Somit kommt wieder jeder an die Daten ran.
05.03.2012
Xantiva 2,3k 2 9
3
Wenn ich dich recht verstehe, dann willst du folgendes:

1.) Die Zugriffe auf die Dateien per http verbieten.

2.) Auf die Dateien per http zugreifen (von deinem Javascript aus).

Das wird wohl schwierig. ;)
05.03.2012
m.fuchs 1,8k 2 8
Kann man evtl. die Funktion umschreiben, dass der Zugriff per direktem Pfad statt findet? Würde das dann was bringen? Die Funktion habe ich in meiner Frage oben editiert und gepostet.
chrispo 05.03.2012
Letztendlich klappt der Datentransfer nur über HTTP, dein Javascript liegt ja clientseitig und ist in diesem Fall nicht anders als jeder HTTP-Client.
m.fuchs 05.03.2012
2
Hallo,

JavaScript kann niemals direkt auf File-Verzeichnisse auf dem Server zugreifen. Du kannst Dir aber eine serverseitige Funktion bauen, die die Datei öffnet, den Inhalt einliest, und diesen dann als Response zurückgibt.

Diese Funktion rufst Du per JavaScript auf, also z.B. per URL: http://meineadresse.de/GetFileContent?file=dateiName.

Das Verzeichnis wo die Dateien liegen muss somit von außen nicht zugänglich sein.
05.03.2012
SensenMannLE 1,2k 2 9

Stelle deine Javascript-Frage jetzt!