![]() |
Re: mysql abfrage rückgabewert
so ist der sql code jetzt:
SQL-Code:
$sql = "SELECT * FROM nl_anmeldungen WHERE md5wert = '$hash'";
|
Re: mysql abfrage rückgabewert
jetzt möchte ich noch bei richtiger abfrage in die spalte bestaetigung ein true reinschreiben.
Wie mache ich das? |
Re: mysql abfrage rückgabewert
SQL-Code:
[edit] Sry, hatte nicht richtig hingesehen. Aber wieso ist das ein Varchar(50)-Feld? [/edit]
UPDATE nl_anmeldungen SET bestaetigung = 'TRUE' WHERE md5wert = '$hash'
|
Re: mysql abfrage rückgabewert
Zitat:
Du musst $hash maskieren:
Code:
Das ist wirklich wichtig! Ein User könnte sonst (vielleicht auch unbeabsichtigt) deiner Datenbank Schaden zufügen. Du glaubst gar nicht, wieviele Hacker sich die Finger nach einer Seite wie deiner lecken.
$sql = "SELECT * FROM nl_anmeldungen WHERE md5wert = '".mysql_real_escape_string($hash)."'";
LG, Xong |
Re: mysql abfrage rückgabewert
Siehe dazu auch hier:
![]() |
Re: mysql abfrage rückgabewert
danke an xong das du mich so ausdrücklich auf die sicherheit hinweißt!!
Wirklich toll von Dir!! Muss ich diesen Code den auch so schützen?
SQL-Code:
$sql1 = "UPDATE nl_anmeldungen SET bestaetigung = 'true' WHERE md5wert = '$hash'";
|
Re: mysql abfrage rückgabewert
Unbedingt. Lass Dir das SQL mal ausgeben (nur ausgeben, nicht ausführen :!: ), wenn man folgenden Hash übergibt:
Code:
' OR 1=1;DELETE FROM nl_anmeldungen WHERE 'A' = 'A
|
Re: mysql abfrage rückgabewert
Zitat:
Ich wette, dass der Server, auf dem Delphi-Phil arbeitet, standardmäßig Magic Quotes aktiviert hat. Dein escapen führt damit zu noch mehr Problemen. Also entweder vorher noch stripslashes() anwenden, alle $_POST, $_GET usw. -Variablen komplett durch stripslashes laufen lassen, oder einfach das Escapen weglassen. Edit:// @DeddyH: Dein Code funktioniert nicht, da du mit MySQL-Query nur ein Query ausführen kannst. Ein Semikolon führt zu einem SQL-Syntax-Fehler. ;-) Mit freundlichen Grüßen, Valle |
Re: mysql abfrage rückgabewert
Der erste Teil genügt aber für den Login ohne Account.
|
Re: mysql abfrage rückgabewert
Zitat:
Ist ja auch gar nicht böse gemeint. Aber bei sowas muss man immer mit Nachdruck schreiben, damit´s auch wirklich hängen bleibt. Ich habe schon so viele Seiten gesehen, auf denen Sachen wie "This site was hacked by..." standen. Außerdem können solche Seiten den zugrundeliegenden Server zu Spamschleudern machen und dann kannst du sogar rechtliche Probleme bekommen. Zitat:
Du musst alles schützen, was von außen kommt, also alles was nicht in deinem Skript definiert wird. Beispiel: Du hast im HTML sowas stehen:
Code:
Im PHP setzt du dann folgende SQL-Abfrage ab:
<label for="name">Name:</label> <input type="checkbox" name="name" id="name" />
Code:
Was glaubst du, was passiert, wenn in Name '); DROP TABLE table;-- steht?
mysql_query("INSERT INTO table (name) VALUES('".$_POST['name']."')")
Du würdest folgenden Code an die Datenbank schicken:
SQL-Code:
Es wären noch viel schlimmere Dinge möglich. Jemand könnte versuchen Zugriff auf deine Datenbank zu bekommen, indem er die Passwörter ändert.
INSERT INTO table (name) VALUES(''); DROP TABLE table;--')
Vielleicht sogar so, dass du es gar nicht merkst, indem er einfach nur einen neuen Benutzer hinzufügt. Viels ist möglich. Und du musst das verhindern. Richtig wäre in PHP folgendes:
Code:
Dann wird nämlich
mysql_query("INSERT INTO table (name) VALUES('".mysql_real_escape_string($_POST['name'])."')")
SQL-Code:
abgeschickt und alles wäre in Ordnung.
INSERT INTO table (name) VALUES('\'); DROP TABLE table;--)'
Merke: All Input Is Evil! LG, Xong |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 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