Entwickler-Ecke

Datenbanken - SQlite3 Datei Download Schutz


josefkoller - Mo 21.01.13 12:41
Titel: SQlite3 Datei Download Schutz
Hallo,

mittels INDY idhttp ist es einfach z. b. eine SQLITE-DB-Datei (oder auch andere) von einer Webseite zu downloaden.

Delphi-Quelltext
1:
2:
3:
connstring:= 'www.josefkoller.de/test.sqlite';
IdHTTP1.Get('http://'+connstring, MS);
MS.SaveToFile('test_web.sqlite');

Kann man eine Datei vor einem Download schützen? Oder nur einem bestimmten Personenkreis zugänglich machen?

Meine Frage hat zwar eher was mit Internet, usw. zu tun. Ich weiß aber nicht recht, wo ich sonst eine Frage bezüglich Delphi und Webdownload unterbringen könnte.

Danke.

Josef

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


bummi - Mo 21.01.13 14:29

Da Du Apache einsetzt könnte das hilfreich sein:
http://httpd.apache.org/docs/2.2/howto/auth.html


josefkoller - Mo 21.01.13 20:50

Hallo,

danke für den Hinweis.

Das Blöde ist nur, daß man bei den meisten Hostern keinen Zugang zu derartigen Einstellungen hat.

Es soll ja nicht nur bei mir funktionieren.

Werde einstweilen die sqlite-Datei umbenennen und dabei irgendwelche "Unsinn Zeichen" verwenden. Da sollte sie selbst mit Suchläufen durch Internetseiten nicht so leicht aufzuspüren und ggf. zu manipulieren sein.

Vielleicht kennt ja jemand noch irgendwas php-mäßiges, um nicht so ohne Weiteres an die Datei ranzukommen.

Danke.

ciao

Josef


Tilo - Mo 21.01.13 21:09

Nur mal als Einwurf:
Wie wäre es mit einen passwordgeschütztem Archiv?
Das Archiv kann dann öffentlich sein und das notwendige Password wird nur an authorisierte Personen herrausgegeben.

Die Passwortübermittlung und das Entpacken müßte aber im Hintergrund geschehen da man sonst Gefahr läuft, dass sich jemand verpappert (ausversehen, ich unterstelle keine bösen Absichten) und somit dann doch wieder jeder zugriff hat.


josefkoller - Di 22.01.13 00:16

Hallo,

ja, daß wäre auch irgendwie zu machen.

Bei mir ist das Ding aber eine Bestell DB. D. h. es muß jeder seine Bestellung abschicken können und die Bestelldaten müssen in die DB.

Selbst wenn ich dann die DB - Datei nach einem Insert in ein geschütztes Verzeichnis wegkopiere oder sonstwie archiviere, die "öffentliche DB-Datei" wäre aber trotzdem zugänglich.

Ich mach es mittlerweile so, daß ich die INSERT'S doppelt eintrage.

Einmal in eine mysql DB und dann nochmal in die SQLite DB.
Der SQLite DB hab ich zusätzlich einen ganz blöden und kangen Namen gegeben.

Sollte die SQLite DB trotzdem mal verschwinden oder gelöscht werden, sind die Daten immer noch in der mysql DB.

Die SQLite DB ist halt deswegen so verlockend, weil man diese Datei ohne großes Brimbamborium runterladen und dann eben in Delphi lokal weiterverarbeiten kann.

Ist zwar irgendwie nicht befriedigend, aber mir fällt momentan nichts Besseres ein.

Ciao

Josef


WASEO - Di 29.01.13 08:14

Hallo Josef,

interessantes Problem! Eine Möglichkeit wäre, dass Du einen dynamischen Dateinamen wählst. Über PHP könnte man die Datei jeden Tag umbenennen, z. B. "best"+Unixdatum+".sqlite". Dein Delphi-Programm weiss das natürlich und kann die Datei herunterladen, andere nicht.

Das Umbenennen könnte so funktionieren: Das PHP-Skript stellt gleich am Anfang das aktuelle Datum fest und prüft, ob eine SQLite-Datei des Vortages existiert. Falls ja, wird diese auf das aktuelle Datum umbenannt. Falls nicht, wird eine Sqlite-DB mit dem aktuellen Datum erzeugt.

Grüsse
Thorsten


FinnO - Di 29.01.13 12:53

Security by obscurity ist keine lösung.

Sinnvoll wäre nur, die Daten verschlüsselt in der Datenbank zu speichern, diese herunterzuladen und dann mit Delphi wieder zu entschlüsseln.