![]() |
Wie Einstellungen am sichersten speichern?
Hi,
ich stehe vor folgendem Problem: Ich möchte Einstellungen und benötigte Programmdateien abspeichern, und zwar so das sie kein eingeschränkter Benutzer editieren oder löschen kann. Welche Möglichkeiten habe ich? Das Programme- / Windows- Verzeichnis (bitte schlagt mich nicht :???: ) ist das einzige was mir einfällt. Wohl gemerkt, die eingeschränkten User müssen die Daten lesen können. Wie wäre es, die Dateien vllt. mit exklusiven Schreibrechten zu öffnen? Wie geht das überhaupt? Wichtig ist außerdem noch das mein Programm-Schreibrechte auf die Dateien haben muss. Also wäre hier ein Dienst unterm Systemkonto nötig. Doch der kann wiederrum nicht mit den Benutzer interagieren, es sei denn man nimmt einen sicherheitskritischen (?), interaktiven Dienst. Fällt jemandem eine weitere Möglichkeit ein? Oder gibt es vllt. eine Möglichkeit mit einem Dienst (nicht interaktiv) Messages an Fenster, Prozesse beenden, usw. unter den verschiednen Benutzerkonten zu realisieren? Vielen Dank schonmal :-) |
Re: Wie Einstellungen am sichersten speichern?
Du könntest einen Dienst schreiben welcher einen Server enthält auf TCP/IP Baisis. Mit diesem kommoniziert dann deine Anwendung. Und wie du bereits sagtest kann der Dienst ja die Datei dann exclusiv offen halten.
|
Re: Wie Einstellungen am sichersten speichern?
Zitat:
Ich habe Turbo Delphi Professional |
Re: Wie Einstellungen am sichersten speichern?
wenn du permanent ne datenbank zur verfügung hast, könntest du auch dort deine
einstellungen hinterlegen! |
Re: Wie Einstellungen am sichersten speichern?
Zitat:
|
Re: Wie Einstellungen am sichersten speichern?
wie wäre es mit der registry oder einem verschlüsseltem ini file???
|
Re: Wie Einstellungen am sichersten speichern?
Zitat:
|
Re: Wie Einstellungen am sichersten speichern?
Oder einer Datenbank
|
Re: Wie Einstellungen am sichersten speichern?
Zitat:
kommt und dort Rechte hat, diese auch löschen (selbst wenn du es nicht innerhalb deines Programms erlaubst) Ein embedded Datenbank wäre ja ohne Installation sofort lauffähig, da würde der User i.d.R. nichts von merken. Unnötig zu erwähnen, das der Aufwand ein wenig größer wäre, als mit einer Ini-Datei... Vielleicht können wir dir eher helfen, wenn du grob umschreibst, welche Daten genau verwaltet werden müssen. Denn wenn du die Listen-Einträge ebenfalls in einer DB abspeichern könntest, wären sie ganz einfach den verschiedenen Usern zuzuordnen (ID des Listen-Eintrags in einer separaten Referenz-Tabelle zusammen mit der ID des Users anlegen) Gruß Pfoto |
Re: Wie Einstellungen am sichersten speichern?
@pfoto: Nicht jeder kann die Dateien löschen vor allem nicht wenn diese exclusiv geöffnet sind.
|
Re: Wie Einstellungen am sichersten speichern?
Zitat:
Ich kann mir aber nicht vorstellen, dass die Dateien so stark geschützt werden müssen, das ssie niemand verändern und/oder löschen darf. Wenn es jemand doch macht, dann macht er sich doch damit selbst das Programm "kaputt" und fertig ist. Ich kenne niemanden, der einfach so im Programme-Ordner umherschnüffelt, wild und wahllos irgendwelche Dateien nimmt und sonst was mit denen veranstaltet und NICHT weiß, dass er damit etwas kaputt machen kann. Um was geht es dir eigentlich? Um das nicht löschen deiner Daten oder um das nicht verändern deiner Daten? Wenn es dir nur um das nicht editieren geht, dann verschlüssel sie doch. Wenn es um das nicht löschen geht, dann such dir ein Verzeichnis (AppData oder so) was für solche Sachen gedacht ist. Du kannst nicht komplett verbieten, dass diese Datei nur von deinem Programm verändert werden kann und auch für immer da bleiben muss. Mir fällt gerade ein, dass man die Daten ja auch als Ressource mit in die Exe packen kann. Flare |
Re: Wie Einstellungen am sichersten speichern?
Es handelt sich um URLs. Pro Zeile eine. So eine embedded-DB wäre auch was feines. Da ich annehme das embedded nicht für das speichern in die exe oder einer ressource dll steht, muss also die DB auch irgendwo als Datei vorhanden sein. Die kann, sofern die nötigen Userrechte zur Verfügung stehen, auch gelöscht werden. Also ist die beste Lösung, die Datei exklusiv zu öffnen. Nur wie mache ich das? Und wo speichere ich die Datei(en) damit mein Updateprogramm welches u. U. auf einen eingeschränkten Konto läuft die Daten eintragen kann? AllUsers-Ordner?
EDIT: Mein Projekt ist quasi eine Kindersicherung mit einigen weiteren Funktionen (womit es auch für andere Erwachsene interessant wird). Wenn eine oder alle Filterlisten gelöscht werden ist mein Programm nutzlos. |
Re: Wie Einstellungen am sichersten speichern?
Wie bereits erwähnt würde ich das ganze über einen Service laufen lassen der die ganze Zeit läuft und somit die Datei die ganze Zeit in Beschlag hat (exclusiv geöffnet). Das Programm was der User mit eingeschränkten Rechten dann bekommt ist nur ein Client welcher mit dem Service kommuniziert. Der Client kann also nur vordefinierte Aktionen ausführen da er nicht an die Datei ran kommt sondern nur dem Service sagen kann was dieser machen soll.
|
Re: Wie Einstellungen am sichersten speichern?
Zitat:
|
Re: Wie Einstellungen am sichersten speichern?
eigentlich wie ein normaler kleiner Chat (dazu gibt es jede Menge Beispiel weil sich sehr viele an einem einfachen Chat versuchen). Der Client (Programm welches der eingeschränkte Nutzer hat) verbindet zum Server (Dienst) und dann kann der Client Daten an den Server senden und umgekehrt. für das Senden gibt es in aller Regel funktionen wie SendBuffer denen einfach ein Buffer (zum Beispiel String) übergeben wird und dieser Buffer kommt dann so auf der Gegenseite an und kann dort ausgewertet werden.
|
Re: Wie Einstellungen am sichersten speichern?
Zitat:
|
Re: Wie Einstellungen am sichersten speichern?
Eingeschränkte Benutzer, denen kannst du einfach nur Lesezugriffe auf deine Parameterdatei verpassen. Dazu kann z.B. eine ini-Datei herhalten. Sind die Datenmengen zu gross, so nimm eine Datenbank, und gib dort den Benutzer nur Lesezugriff. Lesezugriff innerhalb der Datenbank (als DB User), und Lesezugriff im Filesystem vom Windows. Die DB Engine läuft prinzipiell unter dem SYSTEM Account. Es reciht also aus, wenn Admins und der Account SYSTEM Vollzugriff auf die DB Datei bekommen. Alle andere wird im Usermanagement der DB konfiguriert.
|
Re: Wie Einstellungen am sichersten speichern?
Um nochmal auf den TCP Server zurück zu kommen: Der Client läuft ja dann im Konto des eingeschränkten Benutzers, also kann dieser Benutzer den Client einfach über den Taskmanager killen. Gibt es eine Möglichkeit das zu verhindern?
Außerdem bekomme ich das mit dem Server/Client nicht hin. Bisher habe ich folgendes: Client:
Delphi-Quellcode:
Server:
procedure TForm1.Button1Click(Sender: TObject);
var text: String; begin text := edit1.text; tcpclient1.SendBuf(text, length(text), 0); end;
Delphi-Quellcode:
Port: 8536
procedure TForm2.TcpServer1GetThread(Sender: TObject;
var ClientSocketThread: TClientSocketThread); begin showmessage(clientsocketthread.ClientSocket.Receiveln); end; Host: 127.0.0.1 Nicht viel, ich weiß. Aber aus der Delphi-Hilfe werde ich nicht schlau. Da ist ja nichtmal ein Beispiel aufgeführt. Eine Fehlermeldung kommt nicht. Aber der gesendete String kommt einfach nicht an... Was mache ich falsch? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz