mysql Kontrollieren ob ID zum User gehört

Hookah

Erfahrenes Mitglied
Abend,

Ich habe ein Online Spiel bei dem sich User anmelden. Jetzt möchte ich eine Funktion zum Löschen des eigenen Accounts einführen. Den Link zum löschen des eigenen Accounts erhalten die User zwar erst wenn sie eingeloggt sind, aber wenn sich jemand einen Spass erlaubt und die id in der Url ändert, kann er auch andere Accounts löschen.

Hiermit lösche ich die Accounts
PHP:
 <?php
echo " Dein Account ".$_GET['user']."  wurde nun gelöscht. ";
  mysql_connect("localhost","#######","******") or die
  ("Keine Verbindung moeglich");
  mysql_select_db("*******") or die
  ("Die Datenbank existiert nicht");
$sql = "DELETE FROM dieb_user_1 WHERE id = '".$_GET['id']."'";
$loesch = mysql_query($sql);
  ?>
Aufrufen tu ich es mit
HTML:
<a href="'.$domain.'/loeschen.php?id='.$id.'&user='.$_SESSION['user'].'"> Account löschen </a>

Das löschen Funktioniert.
Damit nicht irgendjemand willkürlich Accounts löschen kann würde ich gerne in der Datenbank prüfen ob die ID auch zu Dem User gehört.
Wie vergleich ich ob die ID auch zu dem User gehört?
Über jeden Ratschlag bin ich dankbar.

Schönen Abend.
Hooki
 
Du solltest dich mal mit dem Thema MYSQL-INJECTIONS etwas auseinandersetzen....

Man kann mehr mit der ID-Variablen anstellen wie die Zahl zu ändern..


B2T: Speichere die ID des Users beim Login einfach mit in die Session und nehm sie net per $_GET sondern mit $_SESSION['user_id']

Oder du löschst den Datensatz nicht anhand der ID sondern anhand des Usernamens..

PHP:
<?php
echo " Dein Account ".$_GET['user']."  wurde nun gelöscht. ";
  mysql_connect("localhost","#######","******") or die
  ("Keine Verbindung moeglich");
  mysql_select_db("*******") or die
  ("Die Datenbank existiert nicht");
$sql = "DELETE FROM dieb_user_1 WHERE username = '".$_SESSION['user']."'";
$loesch = mysql_query($sql);
  ?>


PHP:
<a href="'.$domain.'/loeschen.php'"> Account löschen </a>


MFG
Sandro
 
Danke das du mich drauf aufmerksam gemacht hast. Jetz weiss ich was passieren kann. Hab es so gelöst das man Benutzernamen und Passwort eingeben muss und dann wird nach Benutzer gelöscht. Du hast mich drauf gebracht. Wie auch immer.
Danke für die Aufklärung und bis zum nächsten überflüssigen Thread von mir.

mfG Hook
 
Zurück