AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL & PHP-Problem

Ein Thema von ecHo89 · begonnen am 21. Nov 2009 · letzter Beitrag vom 23. Nov 2009
Antwort Antwort
Seite 2 von 2     12   
ecHo89

Registriert seit: 13. Apr 2008
97 Beiträge
 
#11

Re: MySQL & PHP-Problem

  Alt 22. Nov 2009, 22:08
Ahh, danke Matze.

jfheins:

Delphi-Quellcode:
$val = mysql_fetch_assoc($sql);
echo $val['Key']; oder die($val['Key']);
funktioniert wie bereits erwähnt nicht. Mir fällt auch kein Grund ein wieso es beim anderen nach genau dem gleichen Schema funktioniert...
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: MySQL & PHP-Problem

  Alt 23. Nov 2009, 06:53
Guten Morgen

Zitat von ecHo89:
SQL-Code:
$sql = mysql_query("SELECT Key FROM Table2 WHERE Key='$Seriennummer'");
$val = mysql_fetch_assoc($sql);

die($val['Key']);
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /users/echo/www/ValidateKey.php on line 11

</span>

Ich weiß echt nicht wo da der Fehler liegen sollte... Table2-> NR: int, Key: varchar(8)
Hier fällt mir sofort auf, dass "Key" durch den Syntax-Highlighter hervorgehoben wird. Du kannst mal versuchen, anstelle von "Key" einen anderen Namen zu verwenden. Nicht, dass MySQL das als "PRIMARY KEY" o.ä. interpretiert.
Das würde auch erklären, wieso es bei deinem anderen Aufruf mit dem gleichen Aufbau (aber anderen Spaltennamen) funktioniert.

Grüße, Matze
  Mit Zitat antworten Zitat
ecHo89

Registriert seit: 13. Apr 2008
97 Beiträge
 
#13

Re: MySQL & PHP-Problem

  Alt 23. Nov 2009, 07:58
Ja, das ist mir auch schon aufgefallen. Habs auch vorgestern mal getestet mit anderer Spalte Key2.
Werde jetzt nocheinmal systemmatisch von vorne bis hinten alles durchgehen und schauen, dass nirgends Key benutzt wird.
Mal schaun... -.-
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#14

Re: MySQL & PHP-Problem

  Alt 23. Nov 2009, 08:19
Zitat von ecHo89:
mysql_query("UPDATE " . $tablename . " SET AnzahlReg= " . $val[AnzahlReg] . " WHERE Seriennummer='" . $Seriennummer . "'");
Du weisst schon das genau das einer der am häufigsten genannten Gründe ist, warum PHP-Anwendungen als unsicher gelten?

Stelle Dir mal vor, der User gibt als Seriennummer in Deiner Delphi-Anwendung folgendes ein:
Code:
123'; DELETE FROM TABLE Table2;
Das Statement was bei raus kommt ist folgendes:
SQL-Code:
UPDATE tblBlaBlubb SET AnzahlReg= 5 WHERE Seriennummer='123';
DELETE FROM TABLE table2;
Das erste Statement liefert noch nichtmal einen Fehler, es wird einfach kein Datensatz gefunden. Das zweite Statement löscht mal kurzerhand den Inhalt einer Deiner Tabellen.

Wenn Du Dich wunderst wie man an die Tabellen kommt: Man kann den Netzwerkverkehr und damit das abgefragte PHP-Script recht einfach mittels Netzwerk-Sniffern herausfinden. Mit anderen Befehlen die man direkt an Dein PHP-Script schicken kann (also ohne Umweg über Deine Delphi-Anwendung) kann man z.B. anstelle des DELETE FROM Befehls erstmal ein SHOW TABLES; absetzen. In der Fehlerausgabe Deines Scriptes sieht man dann schön alle zur verfügung stehenden Tabellen. Und dann kann man die sich sogar komplett ausgeben lassen und findet sogar alle zur Verfügung stehenden Seriennummern heraus. Und man kann sogar ein UPDATE laufen lassen, dass die Registierung wieder auf 0 setzt.

Mach Dir bitte Gedanken ob das so gewollt ist oder ob Du vielleicht ein bisschen mehr Aufwand in parametrisierte Statements stecken willst, mit denen Du so eine SQL-Injection vermeiden könntest.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
ecHo89

Registriert seit: 13. Apr 2008
97 Beiträge
 
#15

Re: MySQL & PHP-Problem

  Alt 23. Nov 2009, 19:05
Dachte man kann nur direkte Eingaben per php manipulieren. Aber wenn das Passwort für die Datenbank (im Delphi-Quelltext zum connecten zur DB) mitgesnifft werden kann, dann is das schlecht. Hab mal ein bisschen gesucht, aber nichts gescheites zu dem Stichwort gefunden. Hat jemand ne gute Quelle?
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#16

Re: MySQL & PHP-Problem

  Alt 23. Nov 2009, 19:08
Zitat von ecHo89:
Dachte man kann nur direkte Eingaben per php manipulieren. Hab mal ein bisschen gesucht, aber nichts gescheites zu dem Stichwort gefunden. Hat jemand ne gute Quelle?
Die Sache nennt man SQL Injection. Dazu findet man bei einschlägigen Suchmaschinen oder Online Enzyklopädien einiges.

Edit:// @Phoenix: Die mysql_query Funktion lässt nur ein Query (auch durch Semikolon getrennt) zu. Dein Beispiel gibt einfach nur einen Syntax-Fehler. Aber das Prinzip ist natürlch korrekt.

Liebe Grüße,
Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#17

Re: MySQL & PHP-Problem

  Alt 23. Nov 2009, 19:39
Die einfachste Möglichkeit:
Code:
<?php
$sql = mysql_query('SELECT Key FROM Table2 WHERE Key="' . mysql_real_escape($_POST['Seriennummer']) . '"') or die(mysql_error());
if(mysql_num_rows($sql) == 1)

  $val = mysql_fetch_assoc($sql);
  echo $val['Key'];

else

  die('Fehler: Falsche Ergebnismenge')
}
?>
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:56 Uhr.
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