php/mysql-Verständnisfrage


phwert

Erfahrenes Mitglied
#1
Hallo,

es geht um diese Anwendung.

Es wird ja immer so viel Wert auf Sicherheit gelegt, prepared statements etc. Ich frage mich, ob es nicht möglich ist, die Seite delete.php einfach so aufzurufen, den id-Parameter anzuhängen - z. B. Server-Pfad..../delete.php?id=100 - und die Sache abzuschicken. Wie wird so etwas verhindert?

Gruß
 
#2
Das Projekt habe ich nicht installiert und nur mal die delete.php überflogen. Wenn es da wirklich keinen anderen Schutz im Projekt gibt (z. B. Direkt-Zugriff per .htaccess ausschliessen), kann man tatsächlich die delete.php samt GET-Parameter aufrufen.

Einfacher Schutz wäre z. B.:
Die delete.php wird in einem "übergeordneten" Script inkludiert. Dort wird ein Parameter gesetzt, z. B.:
define('SICHERHEITSPARAMETER',TRUE);

In der delete.php dann als 2. Zeile:
if(!defined(SICHERHEITSPARAMETER))exit(); // oder was statt exit auch immer passieren soll

Das macht natürlich auch wieder nur dann Sinn, wenn das inkludierende Script nicht einfach von jedem Gast aufgerufen werden kann.

Im vorliegenden Fall sollte die delete.php wirklich nicht delete.php heissen, sondern über eine Variable (oder auch eine Konstante) angesprochen werden:
$deletephp = '1jksadhKJHkjhq33kjsdhUHIUhkw3KJHWDKJhWKJh.php';
[...]
include($deletephp);

Das gilt eigentlich auch für alle "kritischeren" Scripte.

Und man kann auch übertreiben indem man sich z. B. ein Schlüssel kreiert, den Inhalt der Datei verschlüsselt und bei Bedarf wieder entschlüsselt. Das ist aber ernsthaft übertrieben. Aber kann man machen :)
 

Neue Beiträge