![]() |
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 10:42 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