MySQL Einfügen in Tabelle nur von Programm zulassen

Steffencz

Mitglied
Guten Tag,

ich bin seit ner Weile am googeln, finde aber nur ansatzweise eine Lösung.
Ich möchte für ein Java Spiel eine highscore Liste erstellen, die auf einer MySQL Datenbank gespeichert wird. Um das ganze einigermaßen sicher zu machen habe ich mir vorgestellt, eine PHP Datei zum abrufen und erstellen neuer Einträge zu erstellen. Dies würde sicherstellen dass niemand direkten Zugriff zur Datenbank herstellen kann. Nun ist aber die Frage wie man verhindert dass jemand einen fake high-score einträgt. Jeder kann die PHP Datei im Browser öffnen und als Parameter z.B. 10.000 Punkte übergeben, was dann ohne weiteres in die Datenbank übernommen werden würde. Gibt es da eine Möglichkeit auch dies zu verhindern, sodass der Spieler wirklich gezwungen ist zu spielen bevor er einen high score einträgt?

Danke für Antworten und MFG
Steffencz
 
Jeder kann die PHP Datei im Browser öffnen und als Parameter z.B. 10.000 Punkte übergeben,
Du könntest das Verzeichnis, in dem die Datei liegt mit .htaccess schützen. Dann müssten User/PW eingegeben werden. Allerdings stellt sich dann die Frage, wie Dein Programm Daten ans PHP-Script sendet. Im Endeffekt müsstest Du diese Informationen ja wieder im Programm hinterlegen, von wo sie jemand auslesen könnte... Tut mir leid, eine wirkliche Lösung ist das noch nicht, aber zumindest legt man damit die Hürde für's Schummeln etwas höher.
 
Du könntest das Verzeichnis, in dem die Datei liegt mit .htaccess schützen. Dann müssten User/PW eingegeben werden. Allerdings stellt sich dann die Frage, wie Dein Programm Daten ans PHP-Script sendet. Im Endeffekt müsstest Du diese Informationen ja wieder im Programm hinterlegen, von wo sie jemand auslesen könnte... Tut mir leid, eine wirkliche Lösung ist das noch nicht, aber zumindest legt man damit die Hürde für's Schummeln etwas höher.

Das Problem ist halt, mir fallen tausende Möglichkeiten ein es schwieriger zu machen, wer aber wirklich den Quelltext auseinander nimmt wird innerhalb von Sekunden schummeln können....
 
Das stimmt. Das Grundproblem ist halt, dass dem Client "erlaubt" wird, seine Punktestände selbst zu berechnen und zu melden. Verlege diesen Algorithmus auf den Server und Du hast das Problem nicht. Wobei mir da jetzt auch nicht einfällt, wie das einfach gehen sollte.
 
Um es 100% fälschungssicher zu machen ja 😳. Ist natürlich Quatsch. Es gibt bei dieser Konstellation leider keine 100% sichere Lösung. Nur Hürden, die das Schummeln erschweren.
 
um es noch etwas schwieriger zu machen kannst du natürlich noch den punktestand hasten/crypten oder sonst wie verwursteln und als Kontrollwert mit übergeben, so das man nicht einfach nur den Wert für den Highscore beim senden an den Server ändern muss.
 

Zurück
Oben