Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Sicherheit Access DB (https://www.delphipraxis.net/106906-sicherheit-access-db.html)

Gargamel 18. Jan 2008 14:18

Datenbank: Access 2003 • Version: 2003 • Zugriff über: ADO

Sicherheit Access DB
 
Jetzt habe ich eine generelle Frage an Euch. Es geht um die Sicherheit.

Folgendes habe ich vor:

Die Datenbank soll Leveldaten beinhalten. Ein Haus soll hier stehen, ein Baum dort, usw. ...
Der Ablauf ist so, daß die 3D-Engine eine DLL lädt, die wiederrum auf die Access-DB zugreift und alle relevanten Daten in eine geeignete Datenstruktur schreibt, die sich in der DLL befindet. Danach werden alle Elemente im 3D-Raum platziert. Da die DB nur zum Laden des Levels und zum Laden/Speichern von Spielständen genutzt werden soll, ist die Frage nach der Geschwindigkeit nicht gegeben.

Die Access-DB ist zwar passwortgeschützt, dennoch drängt sich mir die Frage auf, ob diese Vorgehensweise halbwegs sicher ist.
Nichts ist schlimmer, als daß der Spieler später die Leveldaten einfach so abändern kann.

Meine Frage ist also: Sollte ich so vorgehen oder habt Ihr noch andere Ideen?

PS: Die 3D-Engine kann ich bereits in Delphi auf einem Formular, alternativ auch ein TPanel, darstellen. Der Leveleditor wird so aufgebaut.

Viele Grüße
Gargi

Bernhard Geyer 18. Jan 2008 14:20

Re: Sicherheit Access DB
 
Zitat:

Zitat von Gargamel
Die Access-DB ist zwar passwortgeschützt, dennoch drängt sich mir die Frage auf, ob diese Vorgehensweise halbwegs sicher ist.
Nichts ist schlimmer, als daß der Spieler später die Leveldaten einfach so abändern kann.

AFAIK kann man ältere Access-Datenbanken so in 1-2 Sekunden vom Passwortschutz befreien. Fertige Tools gibt es reihenweise im Netz.

shmia 18. Jan 2008 15:14

Re: Sicherheit Access DB
 
Zitat:

Zitat von Gargamel
oder habt Ihr noch andere Ideen?

Du könntest die Leveldaten auch in einer XML-Datei speichern.
Die XML-Datei lässt sich leicht mit gängigen Verfahren verschlüsseln, so dass ein "99.999% Schutz" erreicht wird.
Weiterer Vorteil der XML Datei wäre die leichte Erweiterbarkeit und der hierarchische Datenaufbau.
Kleines Beispiel:
XML-Code:
<Game>
 <Level id="1">
   <Object type="haus>
     
     <Object type="Tür"></Object>
   
   </Object>
 </Level>
 <Level id="2">
 </Level>
</Game>

Gargamel 18. Jan 2008 16:12

Re: Sicherheit Access DB
 
XML wäre natürlich auch eine Lösung. Genauso wie typisierte Dateien oder auch Binary Streams.
In einem Spiel ist es ja so, daß noch weitere Dateien "verschlüsselt" werden sollten.

Meine Idee war folgende:

Alle Dateien, egal ob 3D-Modelle, Texturen, Leveldaten oder auch Shader, werden in ein Archiv komprimiert und verschlüsselt.
Beim Laden eines Levels würden alle dafür benötigten Dateien entpackt und geladen. Sobald das abgeschlossen ist, werden alle Dateien von der Festplatte gelöscht.
Das funktioniert, da während eines Spiels nur mit den Daten im RAM bzw. Grafik-RAM gearbeitet wird. Das betrifft z.B. auch Bitmap-Operationen.

Herr Ritter hat mir freundlicherweise Delphi-Code geschickt, mit dem ich SQX-Dateien lesen und schreiben kann.
Wen es interessiert: SQX-Archiver

Mit der Access-DB sollte es auch so laufen. Das Teil entpacken, Werte auslesen und die Datei sofort wieder löschen.
So jedenfalls mein Plan.

Für jede andere, evtl. bessere, Idee wäre ich dankbar.


Viele Grüße
Gargi


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