Autor |
Beitrag |
Tom01
Hält's aus hier
Beiträge: 7
|
Verfasst: Do 21.07.11 14:35
Hallo,
habe ein eher größeres Programm geschrieben, das viele Daten - fast täglich - abspeichert. Zurzeit funktioniert das alles mit einer Ordnerstruktur und .txt-Dateien. Also wird für jedes Jahr, für jeden Monat ein Ordner und für jeden Tag eine .txt-Datei erstellt. Und in diesen Textdateien werden die Daten gespeichert.
Funktioniert perfekt, aber leider ist diese Methode ja vollkommen unsicher - einmal die .txt-Datei bearbeiten und schon hat man die Daten verändert...
Deshalb würde ich das ganze gerne sicherer machen. Den Ordner schützen wird vermutlich (ich schätz mal) nicht gehen, dass dann nur das Programm das PW weiß...
Hättet ihr da Ideen, wie ich das ganze recht einfach aber ziemlich sicher lösen könnte???
Vielen Dank im Vorraus.
LG
Tom
|
|
Oliver M.
      
Beiträge: 109
Erhaltene Danke: 1
Win 8 CP
VS 11 Beta
|
Verfasst: Do 21.07.11 18:44
Hmmm,
warum .txt Dateien? Das sind Reintextdateien. Ich glaube das ist nicht was du brauchst. Wie wäre es mit .dat Dateien? Da ist das Format des Inhaltes nicht vorgegeben und einfache Windowsbenutzer halten die Flossen davon, schon allein weil Windows keine Möglichkeit zum öffnen dieser .dat-Dateien bietet.
Die Idee mit dem Passwort geht, aber ich glaube, dass das keine gute Idee ist...  Warum denke ich das nur???
Wo werden die Dateien denn abgespeichert? %programfiles% oder %userprofile%? Denn das würde es ausmachen, wie sicher das alles sein muss. Wenn du bei Word im Programmverzeichnis rumfummelst, kannst du dir nächlich gans Word zerschießen, also wäre es nicht schlimm, wenn das bei denem Programm nicht anders wäre. Ausersem lässt Windows dich ja nicht so einfach an %programfiles% dran.
Und warum solche Ordnerstuckturen? Da könnte der Benutzer ja herausfinden, worum es sich bei den Dateien handelt, und wenn benutzer das nicht wissen, machen sie leiber vorsichtshalber keine Änderungen. Ich würde die Dateien einfach in einen großen Topf schmeißen und sie YYMMDD.DAT benennen.
Ich hoffe ich kann dir helfen,
Oliver
|
|
Trashkid2000
      
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: Do 21.07.11 19:34
Hallo, muss mal ungefragt mein Statement dazu abgeben.
Oliver M. hat folgendes geschrieben : | [...] warum .txt Dateien? Das sind Reintextdateien. Ich glaube das ist nicht was du brauchst. Wie wäre es mit .dat Dateien? Da ist das Format des Inhaltes nicht vorgegeben und einfache Windowsbenutzer halten die Flossen davon [...] |
Was ist denn ein einfacher Windowsbenutzer? Jemand, der nicht wirklich viel Ahnung hat?
Oliver M. hat folgendes geschrieben : | [...] schon allein weil Windows keine Möglichkeit zum öffnen dieser .dat-Dateien bietet [...] |
Jemanden, der ein bisschen Ahnung hat und was manipulieren will schreckt sowas kaum ab.
Oliver M. hat folgendes geschrieben : | [...] wenn benutzer das nicht wissen, machen sie leiber vorsichtshalber keine Änderungen. Ich würde die Dateien einfach in einen großen Topf schmeißen und sie YYMMDD.DAT benennen [...] |
Naja, wenn ich wissen will, aus welcher Datei ein Programm liest, bzw. in welche Datei schreibt, so lasse ich einfach FileMon mitlaufen. Dann habe ich alle Informationen, die ich benötige.
Die große Frage ist doch, was in den Dateien gespeichert wird. Wenn es sehr sensible Daten sind, die der (fortgeschrittene) User nicht sehen darf, wirst Du wohl um eine Verschlüsselung nicht herumkommen.
Aber vor einem Manipulieren bist Du trotzdem nicht sicher, Du erhältst nur beim entschlüsseln Müll, oder es geht schief.
Wenn Du nur sicher sein willst, dass die Daten nicht manipuliert wurden, so speichere Dir entweder ein Hash, gegen den Du dann beim Einlesen prüfst (was aber auch geknackt werden kann), oder signiere die Dateien.
|
|
Thorsten Kettner
Hält's aus hier
Beiträge: 2
|
Verfasst: Do 21.07.11 19:45
Hi Tom, es würde helfen, zu wissen, was du da tagtäglich speicherst. Sind es tatsächlich Texte, die du einfach archivieren willst? Hast du tatsächlich Angst vor Manipulation oder nur vor versehentlichem Ändern/Löschen? Eventuell würde ja schon ein gesetztes Schreibschutz-Attribut an den erstellten Dateien genügen.
Es gibt natürlich viele Möglichkeiten, Daten zu speichern. Eine Datenbank mit oder ohne Passwort? Dann bräuchtest du keine Struktur mit Jahren und Monaten, sondern einfach ein Datum im Datensatz. Und je nach Datenbank-System hättest du letztlich evtl. nur eine Datei (SQLite, MDB, ...), so dass ein Backup ein Kinderspiel wäre.
|
|
Oliver M.
      
Beiträge: 109
Erhaltene Danke: 1
Win 8 CP
VS 11 Beta
|
Verfasst: Do 21.07.11 21:31
|
|
Tom01 
Hält's aus hier
Beiträge: 7
|
Verfasst: Fr 22.07.11 10:21
Also: ja, ich könnte auf Dateiendeungen "erfinden", aber die kann man ja eh alle mit dem normalen Windows Editor bearbeiten...
Bzgl. Schreibgeschützt: wird nicht funktionieren, da mein Programm auf diese Dateien schreiben muss. Und da das Programm immer die Rechte von dem hat, der es benutzt, wird das nicht hinhauen!
Es werden wichtige Zahlen die später u.A. zur Berechnung des Gehalts eines Mitarbeiters dienen abgespeichert. Und da ists halt nicht lustig, wenn ein Mitarbeiter da einfach per Editor seine Arbeitszeit erhöhen kann!! Also sollen die Dateien nicht gegen Versehen geschützt sein, sondern gegen "Möchtegern-Hacker" (damit mein ich mit dem Editor die .txt-Datei bearbeiten). Darum gehts. Gegen sowas will ich das alles schützen.
Und Struktur oder Dateinamen ändern wird da gegen so einen "Möchtegern-Hacker" auch nix bringen....
Thorsten Kettner hat folgendes geschrieben : |
Es gibt natürlich viele Möglichkeiten, Daten zu speichern. Eine Datenbank mit oder ohne Passwort? Dann bräuchtest du keine Struktur mit Jahren und Monaten, sondern einfach ein Datum im Datensatz. Und je nach Datenbank-System hättest du letztlich evtl. nur eine Datei (SQLite, MDB, ...), so dass ein Backup ein Kinderspiel wäre. |
Sorry, hab deinen Beitrag wohl übersehen..
Klingt mal gut, aber ist das programmiertechnisch leicht umsetzbar?
Bitte um Hilfe!
LG
Tom
Zuletzt bearbeitet von Tom01 am Fr 22.07.11 10:34, insgesamt 1-mal bearbeitet
|
|
Oliver M.
      
Beiträge: 109
Erhaltene Danke: 1
Win 8 CP
VS 11 Beta
|
Verfasst: Fr 22.07.11 12:39
Hmm, Datenbank mit Passwort... Gans einfach. Ich könnte dir zum warmwerden ein bisschen Beispielcode schicken, der dir beim datenbankauslesen hilft. Weil das ist schon ein bisschen krumm, aber mit meinem Code bekommst du einfach eine Table-Klasse zurück, die man total easy Auslesen kann. Äm, Sicherheit... Ja, Passwort, das geht... Aber es wäre besser, wenn die DB auf einem Server ist. Das macht das ganze um ein ganses Stück Sicherer... Und ist auch nicht schwerer.
Also wenn du mir die genaue Datenstrucktur giebst, dann könnte ich das für dich anlegen, weis du, ich Programmiere seit über nem halben Jahr an einem Projekt, was sich rund um Datenbanken dreht, und habe genau ein DLL was die Daten ausleist, geht auch mit Passwort.
MfG Oliver
|
|
Tom01 
Hält's aus hier
Beiträge: 7
|
Verfasst: Fr 22.07.11 12:58
Oliver M. hat folgendes geschrieben : | Hmm, Datenbank mit Passwort... Gans einfach. Ich könnte dir zum warmwerden ein bisschen Beispielcode schicken, der dir beim datenbankauslesen hilft. Weil das ist schon ein bisschen krumm, aber mit meinem Code bekommst du einfach eine Table-Klasse zurück, die man total easy Auslesen kann. Äm, Sicherheit... Ja, Passwort, das geht... Aber es wäre besser, wenn die DB auf einem Server ist. Das macht das ganze um ein ganses Stück Sicherer... Und ist auch nicht schwerer.
Also wenn du mir die genaue Datenstrucktur giebst, dann könnte ich das für dich anlegen, weis du, ich Programmiere seit über nem halben Jahr an einem Projekt, was sich rund um Datenbanken dreht, und habe genau ein DLL was die Daten ausleist, geht auch mit Passwort.
MfG Oliver |
Danke, wäre super. Leider bin ich beim Thema Datenbanken auf der Stufe Null bis Anfänger.......
In der Firma in der mein Programm benutzt werden soll, ist ein Netzwerk über Kabel, "ohne wirklichen Server" vorhanden. Derzeit haben wir es so gelöst, dass mein Programm einfach im "Ordner" Y:/ (ist ein Laufwerksbuchstabe für einen Ordner im Netzwerk auf den alle PC's zugreifen können) alle Daten speichert/liest. Und da wäre es super wenn da eine Datei (eine Datenbank) drinnenliegt, auf die alle zugreifen können, jedoch nur mit PW. Und dieses PW sollte mein Programm dann halt kennen.
Wie wäre das mit einer DB möglich? Müsste etwas dazuinstalliert werden, wie ginge das? Was wäre das für eine Datei/Datenbank?
LG
Tom
|
|
Th69
      

Beiträge: 4799
Erhaltene Danke: 1059
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Fr 22.07.11 15:42
Hallo Tom,
als Stichwort wäre hier eine "Embedded Database" geeignet, z.B. SqlCompact oder Firebird Embedded
Und als Einstieg in die Datenbankprogrammierung (ADO.NET) kannst du meine Links unter www.c-sharp-forum.de....php?p=646190#646190 benutzen.
|
|
|