PHP und Ajax, Manipulation.

ReqonxS

Mitglied
Hallo,
ich habe ein Doodle Jump Spiel in Javascript.
Nun habe ich es so gemacht, dass ich am Ende (beim Gameover) per Ajax eine PHP Datei aufrufe, in der die Scores in eine MySQL Datenbank importiert werden in ungefähr so:

Code:
$.ajax({
    async:false,
    cache:false,
    url:'jump.php?who=' + username + '&score=' + score,
    type: "GET",
    dataType: "text",
    success:function (data) {
        $("#content").html(data);
    }
});
In der PHP Datei wird nicht viel gemacht:
PHP:
<?php
    if(isset($_get["who"])) {
       $points = mysql_real_escape_string($_get["scores"]);
        mysql_query("update accs set points = points + ".$points." where user = '".mysql_real_escape_string($_get["who"])."'");
    }
?>

Das Problem ist, dass jetzt jeder einfach die PHP Datei mit den Parametern aufrufen kann und sich hochleveln kann, was nicht sein soll.

Ich habe schon versucht in der index.php oben define("ok", true); du zu machen und in der jump.php eine Abfrage ob die Variable definiert ist, wenn nicht -zurückleiten aber, es klappte nicht.
 
Das funktioniert nicht, da zu dem Zeitpunkt die Konstante nicht mehr existiert.
Du müsstest entweder auf eine Session oder auf Cookies zurückgreifen.

Außerdem:
1. verwende nicht mehr die mysql_* Funktionen diese sind alle als Deprecated gekennzeichnet. Verwende lieber die mysqli_* Funktionen, die mysqli-Klasse oder PDO
2. du nimmst Variablen direkt aus dem GET für dein Query. Das lädt nicht nur Betrüger ein sich im Ranking sehr gut zu stellen, sondern auch Hacker die es gleich auf deine Datenbank bzw. vielleicht auch auf dein Server abgesehen haben. Du müsstest entweder alles was du aus dem GET hast mittels real_escape_string escapen oder Prepared-Statements nutzen.
 
Zurück