Autor Beitrag
Tom01
Hält's aus hier
Beiträge: 7



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 109
Erhaltene Danke: 1

Win 8 CP
VS 11 Beta
BeitragVerfasst: 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... :gruebel: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Do 21.07.11 19:34 
Hallo, muss mal ungefragt mein Statement dazu abgeben.
user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
[...] 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?

user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
[...] 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.

user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
[...] 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



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 109
Erhaltene Danke: 1

Win 8 CP
VS 11 Beta
BeitragVerfasst: Do 21.07.11 21:31 
user profile iconTrashkid2000 hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
[...] 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?

Gans genau so einer.

user profile iconTrashkid2000 hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
[...] 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.

Manipulieren geht IMMER: entweder cmd Format C: aber sonst Widerherstellungskonsole Format C:. Oder gans einfach: PC-Vernichten. :wink:

Ich glaube es wäre hilfreich zu wissen, was für Daten das sind und wo sie hingespeichert werden...

MfG Oliver
Tom01 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: 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....

user profile iconThorsten Kettner hat folgendes geschrieben Zum zitierten Posting springen:

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.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 109
Erhaltene Danke: 1

Win 8 CP
VS 11 Beta
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 22.07.11 12:58 
user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4799
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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.