Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zugriff auf Dateien verhindern (https://www.delphipraxis.net/174169-zugriff-auf-dateien-verhindern.html)

jacky213 8. Apr 2013 11:26

Zugriff auf Dateien verhindern
 
Hallo,

ich arbeite gerade an einem Programm welches mir die Buchhaltung erleichtern soll. Laut dem Finanzamt darf das Programm dem Benutzer nicht gestatten ältere Buchungen einfach zu löschen. Zu jeder Buchung wird ein Beleg angefertigt der in form einer RTF Datei in einem Unterordner abgespeichert wird. Mein Problem ist nun, wird dieser Beleg aus dem Ordner gelöscht dann ist er weg und das darf so nicht geschehen. Wie kann ich die Belege alle vor Manipulation durch den Benutzer schützen? Mir ist schon klar, dass es nichts gibt, was Absolut sicher ist, aber ganz so einfach darf es nicht sein.

Wie könnte man das lösen?

Danke

CCRDude 8. Apr 2013 11:33

AW: Zugriff auf Dateien verhindern
 
Allen Benutzern Änderungs- und Löschrechte am Unterordner entziehen?

Dann könnte es nur noch ein Admin, der diese Rechte wieder verändern kann.

jacky213 8. Apr 2013 11:40

AW: Zugriff auf Dateien verhindern
 
Das Problem dabei ist nur das nicht mal der Admin diese Dateien ändern darf. Mein Denkansatz war das ich alle Dateien verbinde und dann Verschlüsselt ablege, aber wie bekomme ich das am elegantesten hin?

Sir Rufo 8. Apr 2013 11:41

AW: Zugriff auf Dateien verhindern
 
Schreibe in dein Programm keinen Code, der Buchungen oder Belege löscht.
Dann erfüllt dein Programm diese Anforderung.

Alles weitere hat etwas mit Archivierung zu tun und das ist eine andere Baustelle, die jedes Unternehmen beim FA gesondert beantragen muss (elektronische Archivierung).

Denn ansonsten gilt, dass alle Belege (die Grundlage für die Buchungen) in Papierform archiviert werden müssen.

jacky213 8. Apr 2013 11:47

AW: Zugriff auf Dateien verhindern
 
Es geht nicht um die Archivierung an sich, die Belege werden ja gedruckt und abgeheftet. Ich möchte aber verhindern, dass der Benutzer die Belege verändert bevor diese gedruckt werden. Zu diesem Zeitpunkt könnte der Nutzer jeden Beleg einfach mit Word öffnen und Bearbeiten.

p80286 8. Apr 2013 11:48

AW: Zugriff auf Dateien verhindern
 
Wie wäre es denn dann mit Schreiben auf ein WriteOnceReadMultiple-Medium?
in der Praxis eine CD oder eine DVD ?

Gruß
K-H

sx2008 8. Apr 2013 11:59

AW: Zugriff auf Dateien verhindern
 
Ich würde alle Buchungen und Belege in ein Git-Repository abspeichern.
Git ist eigentlich eine Versionsverwaltung für Sourcecode aber es hat bestimmte Eigenschaften die es sehr interessant für deine Aufgabe macht.
In Git sind alle Dateien durch Prüfsummen abgesichert.
Die Historie mit allen Änderungen ist ebenfalls durch Prüfsummen gesichert.
Es ist also unmöglich die Historie zu ändern ohne dass sich die Prüfsumme ändert.
Wenn deine Anwendung immer die letzte Prüfsumme speichert, dann kann garantiert werden, dass jede Manipulation an den Belegdaten entdeckt wird.

p80286 8. Apr 2013 12:11

AW: Zugriff auf Dateien verhindern
 
Zitat:

Zitat von sx2008 (Beitrag 1210545)
Wenn deine Anwendung immer die letzte Prüfsumme speichert, dann kann garantiert werden, dass jede Manipulation an den Belegdaten entdeckt wird.

Das ist doch der Knackpunkt. Willst Du bemerken, daß eingebrochen wurde, oder willst Du den Einbruch verhindern.
Falls übrigens direkt nach der Buchung gedruckt wird, hat sich das alles erledigt, dann ist die Buchung dokumentiert, falls nicht das Papier verschwindet, oder der der Drucker ausfällt oder....

Gruß
K-H

Sir Rufo 8. Apr 2013 12:11

AW: Zugriff auf Dateien verhindern
 
Zitat:

Zitat von jacky213 (Beitrag 1210541)
Es geht nicht um die Archivierung an sich, die Belege werden ja gedruckt und abgeheftet. Ich möchte aber verhindern, dass der Benutzer die Belege verändert bevor diese gedruckt werden. Zu diesem Zeitpunkt könnte der Nutzer jeden Beleg einfach mit Word öffnen und Bearbeiten.

Aber das hat mit dem Finanzamt nichts mehr zu schaffen ;)

Eine Alternative habe ich bei ELOprof gesehen.

Auf dem Server läuft ein Dienst, der sich um die Speicherung der Belege kümmert.
Für den Dienst gibt es ein eigenes Benutzerkonto und nur dieses Benutzerkonto hat vollen Schreibzugriff auf das Belegverzeichnis.
Allen anderen Benutzern gibt man dort nur lesenden Zugriff (bei ELO hat keiner Zugriff, da liefert der Dienst die Belege an den Client). Somit ist auch der Administrator soweit aussen vor (gut, die Rechte kann der sich besorgen, aber das ist dann mutwillig oder grob fahrlässig)

Bernhard Geyer 8. Apr 2013 12:14

AW: Zugriff auf Dateien verhindern
 
Möglichkeiten sind:
- Checksumme der RTF in der DB-Speichern. Änderungen werden erkannt. Löschen ist mutwilliger Eingriff.
- Speicher die RTF in der DB. Viele DBMS unterstützen auch die Verschlüsselung.

jacky213 8. Apr 2013 16:44

AW: Zugriff auf Dateien verhindern
 
wenn die Veränderung bemerkt wird, reicht mir das auch

musicman56 8. Apr 2013 19:06

AW: Zugriff auf Dateien verhindern
 
Hallo,

warum speicherst du denn die RTF-Daten nicht einfach in deiner Datenbank (wenn Buchungen da sind, wirst du wohl eine verwenden) in einem Memo-Feld. Mit einem TDBRichEdit kannst du dem User dann sogar die Datei anzeigen, ohne dass er sie ändern kann. Das einzige problem besteht dann nur mehr darin, dass die Datenbank gelöscht werden kann :roll:

Sir Rufo 8. Apr 2013 19:27

AW: Zugriff auf Dateien verhindern
 
Zitat:

Zitat von musicman56 (Beitrag 1210667)
Hallo,

warum speicherst du denn die RTF-Daten nicht einfach in deiner Datenbank (wenn Buchungen da sind, wirst du wohl eine verwenden) in einem Memo-Feld. Mit einem TDBRichEdit kannst du dem User dann sogar die Datei anzeigen, ohne dass er sie ändern kann. Das einzige problem besteht dann nur mehr darin, dass die Datenbank gelöscht werden kann :roll:

Oder es fällt ein Klavier auf den Rechner :mrgreen:

jacky213 9. Apr 2013 09:22

AW: Zugriff auf Dateien verhindern
 
Verdammt... Das Klavier hab ich ja total vergessen....

Spaß beiseite ^^, ich danke für die neuen Ansätze


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 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