AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Programm Datenverifizierung

Ein Thema von Andidreas · begonnen am 13. Feb 2012 · letzter Beitrag vom 16. Feb 2012
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

AW: Programm Datenverifizierung

  Alt 13. Feb 2012, 11:00
nur zu meinem verständnis... firebird muss doch auch irgendwo files ablegen in denen die daten gespeichert werden... diese können doch auch über copy + paste verändert werden? oder nicht?!
Aber nur von den Benutzern, die die nötigen Rechte dazu haben. Das sind in der Regel Administratoren. Arbeiten natürlich alle Benutzer als Administratoren, brauchst du keinen Gedanken an die Sicherheit verschwenden, die ist dann nämlich de facto nicht existent auf dem System.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Programm Datenverifizierung

  Alt 13. Feb 2012, 12:38
Ich weiß nicht, ob ich mir darüber groß Gedanken machen würde, den User so extrem vor sich selber zu beschützen ... wenn der da was "kaputt" machen will -> sein Problem.

Ich würde allerdings solche Daten auch an einem Ort speichern, der normalerweise für den User nicht sichtbar ist (AppData Local oder Roaming).

Wenn der da jetzt auch noch drin rumpfuscht, dann gibt es für den was auf die Mütze.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

AW: Programm Datenverifizierung

  Alt 13. Feb 2012, 17:12
Sqlite unterstützt eine Schema-Version und eine User-Version.
Da haben die Programmierer mal eine richtig gute Idee gehabt.
Mit der Schema-Version kann deine Anwendung überprüfen, ob die Datenbank strukturiell neu genug ist.
Hier etwas Pseudecode:
Delphi-Quellcode:
if SchemaVersion < CURRENT_SCHEMA_VERSION then
   MsgBox('Achtung: Datenbankstruktur ist zu alt! Weitermachen auf eigene Gefahr.')
else if SchemaVersion > CURRENT_SCHEMA_VERSION + 3 then
   MsgBox('Achtung: Anwendungsprogramm könnte zu alt für die Datenbank sein.');
Die User-Version kannst du für eigene Zwecke benützen.
Bei jedem Programmende zählt deine Anwendung die User-Version um Eins hoch und speichert diesen Wert in einer Ini-Datei oder Registry.
Sollte beim Programmstart eine Abweichung zwischen dem gespeicherten Wert und der aktuellen User-Version gibt es einen Hinweis an den Benutzer.
Ausserdem wird in einem Flag gespeichert, dass es eine Abweichung gegeben hat.
Bei gesetztem Flag muss die Anwendung am Ende fragen ob die Datenbank als aktiv gelten soll;
falls User mit "Nein" antwortet unterbleibt das Hochzählen der User-Version.
Andreas
  Mit Zitat antworten Zitat
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#4

AW: Programm Datenverifizierung

  Alt 13. Feb 2012, 17:56
Bei kleinen DB hat sich bei mir folgender Ansatz bewährt:

- Erzeuge die DB (intern und dynamisch) immer neu (hier CDS).
- Öffne die gespeicherte DB (hier tempCDS).
- Kopiere die Felder etwa so:
Delphi-Quellcode:
  begin
    tempCDS := TClientDataset.Create(nil);
    sl := TStringList.Create;
    try
      tempCDS.LoadFromStream(aStrStream);
      tempCDS.Open;
      sl.Text := tempCDS.FieldList.Text;
      while not tempCDS.Eof do
      begin
        CDS.insert;
        for i := 0 to CDS.FieldCount - 1 do
        begin
          s := CDS.Fields[i].FieldName;
          if sl.IndexOf(s) > -1 then
            CDS.FieldByName(s).Value := tempCDS.FieldByName(s).Value;
        end;
        CDS.post;
        tempCDS.Next;
      end;
      tempCDS.Close;
    finally
      sl.free;
      tempCDS.Free;
    end;
Vorteil dieser Methode: Man übernimmt, was nur geht und lässt weg, was nicht mehr geht. Natürlich kann man den Ansatz auch etwas anpassen und zuvor erst einmal so den Strukturunterschied feststellen, den Anwender fragen, was zu tun ist, und entsprechend weiter gehen.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Programm Datenverifizierung

  Alt 13. Feb 2012, 20:01
also ich bin davon abgekommen extra Sicherheitsmaßnahmen zu ergreifen. Ich mache nur das was das OS von sich aus hergibt. Wenn der Benutzer eine Linux-Live-CD einschiebt und die Daten löscht...selber schuld. Ich meine Autohersteller haben auch keine Sicherheitsmaßnahmen, dass man keinen Zucker in den Tank schütten kann oder sich selbst die Bremsschläuche durchschneiden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Programm Datenverifizierung

  Alt 16. Feb 2012, 10:14
Sqlite unterstützt eine Schema-Version und eine User-Version.
Da haben die Programmierer mal eine richtig gute Idee gehabt.
Mit der Schema-Version kann deine Anwendung überprüfen, ob die Datenbank strukturiell neu genug ist.
Hier etwas Pseudecode:
Delphi-Quellcode:
if SchemaVersion < CURRENT_SCHEMA_VERSION then
   MsgBox('Achtung: Datenbankstruktur ist zu alt! Weitermachen auf eigene Gefahr.')
else if SchemaVersion > CURRENT_SCHEMA_VERSION + 3 then
   MsgBox('Achtung: Anwendungsprogramm könnte zu alt für die Datenbank sein.');
Die User-Version kannst du für eigene Zwecke benützen.
Bei jedem Programmende zählt deine Anwendung die User-Version um Eins hoch und speichert diesen Wert in einer Ini-Datei oder Registry.
Sollte beim Programmstart eine Abweichung zwischen dem gespeicherten Wert und der aktuellen User-Version gibt es einen Hinweis an den Benutzer.
Ausserdem wird in einem Flag gespeichert, dass es eine Abweichung gegeben hat.
Bei gesetztem Flag muss die Anwendung am Ende fragen ob die Datenbank als aktiv gelten soll;
falls User mit "Nein" antwortet unterbleibt das Hochzählen der User-Version.
gute idee, danke für den tipp

... Ich meine Autohersteller haben auch keine Sicherheitsmaßnahmen, dass man keinen Zucker in den Tank schütten kann oder sich selbst die Bremsschläuche durchschneiden.
da is auch was dran... aber sofern möglich versuch ich meine programm so sicher wie möglich zu machen
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 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