Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Parameter übergeben (https://www.delphipraxis.net/111691-%5Bphp%5D-parameter-uebergeben.html)

Yheeky 9. Apr 2008 12:40

Re: [PHP] Parameter übergeben
 
Mhmm, also ich weiss immer noch nicht genau was mir mysql_real_escape_string da weiterhilft...dann habe ich ja nur "/"-Zeichen davor...

DeddyH 9. Apr 2008 12:42

Re: [PHP] Parameter übergeben
 
Lies mal: http://www.phpcenter.de/de-html-manu...pe-string.html

Yheeky 9. Apr 2008 13:09

Re: [PHP] Parameter übergeben
 
D.h. vor jedes nicht zulässige Zeichen wird ein "\" gesetzt. Aber bei Leerstellen reagiert die Funktion nicht (es wird ignoriert)... :-/

DeddyH 9. Apr 2008 13:13

Re: [PHP] Parameter übergeben
 
Wieso sollte die Funktion auf Leerzeichen reagieren?

Yheeky 9. Apr 2008 14:51

Re: [PHP] Parameter übergeben
 
Ich meine nicht, dass sie das sollte, aber so etwas brauche ich ja, wenn ich eine Eingabe wie "DROP TABLE" unterlassen will.
Klar, wenn ich Leerzeichen allgemein in Username und Passwort erlauben will, wird´s etwas schwieriger. Dann muss ich die Ausdrücke parsen, um den Aufruf zu verhindern?

Yheeky 9. Apr 2008 16:38

Re: [PHP] Parameter übergeben
 
Mhmm, was ist mit?

Code:
<?php

include('server.php');
 
$username = isset($_GET['username']) ? $_GET['username'] : '';
$password = isset($_GET['password']) ? $_GET['password'] : '';

if ($username && $password)
{
    $sql = 'SELECT * FROM user WHERE
        name = "' . mysql_real_escape_string($username) . '" AND
        password = "' . mysql_real_escape_string($password) . '"';
    $result = mysql_query($sql);
}
 
?>
Würde das funktionieren?

DeddyH 9. Apr 2008 16:41

Re: [PHP] Parameter übergeben
 
Das sollte so gehen. Allerdings würde es auch genügen, in der Abfrage nur die Anzahl der passenden Datensätze zu ermitteln, aber das ist ein anderes Thema.

Yheeky 9. Apr 2008 17:05

Re: [PHP] Parameter übergeben
 
Okay super!
Jetzt könnte doch aber trotzdem noch DROP TABLE eingegeben werden. Wieso wird das nun nicht ausgeführt?

Stimmt, die Anzahl der Datensätze würde in dem Fall ausreichen...

DeddyH 9. Apr 2008 17:06

Re: [PHP] Parameter übergeben
 
Dann heißt der Benutzer eben DROP TABLE :zwinker:

alcaeus 9. Apr 2008 17:18

Re: [PHP] Parameter übergeben
 
Zitat:

Zitat von Yheeky
wenn ich eine Eingabe wie "DROP TABLE" unterlassen will.

Junge, lies doch mal was ich sag:

Zitat:

Zitat von alcaeus
Versuch nicht zu verhindern, dass ein Benutzer SQL-Queries mitschickt. Verhindere, dass diese zur Ausfuehrung kommen

Zur Not kannst du dem Benutzer ja auch sagen, dass er keine SQL-Statements eingeben soll. Dann wird er es aber erst recht tun...

Was ist der Unterschied zwischen den beiden Queries:
SQL-Code:
SELECT * FROM users WHERE username='';DROP TABLE users;--';
SQL-Code:
SELECT * FROM users WHERE username='\';DROP TABLE users;--';
Richtig, bei einem wird das eingegebene Statement ausgefuehrt, beim anderen nicht, weil das Quote escaped ist.

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 Uhr.
Seite 4 von 5   « Erste     234 5      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz