![]() |
Re: serial von mysql db abfragen
Vorsicht bei dem vorher genannten PHP Script!
Eingaben dürfen niemals direkt in eine MySQL-Query eingehen, sondern müssen escaped werden! (SQL-Injektion Gefahr ~> Hacker) Falsch:
Delphi-Quellcode:
Korrekt:
<?php
mysql_query("SELECT ... WHERE serial = '$serial'"); ?>
Delphi-Quellcode:
Dein PHP-Script sollte außerdem etwas zurückgeben, das dein Programm überprüft, um eine Abfragenfälschung zu verhindern (z.B. durch Virtualisierung).
<?php
$serial = $_GET['serial']; mysql_query("SELECT ... WHERE `serial` = '".mysql_real_escape_string($serial)."'"); ?> d.h. serialabfrage.php?serial=1234 gibt "abc" aus, serialabfrage.php?serial=5678 gibt "xyz" aus (eine abgeleitete Abbildungs/Hash-Funktion). Einfach nur "OK" oder "Failure" über das PHP-Script zurückzugeben wäre unsicher. Gruß blackdrake PS: Wenn du Hilfe beim PHP-Script hast, frag mich einfach mal. Das ist mir gut geläufig. |
Re: serial von mysql db abfragen
Zitat:
Code:
Und wem das zu umständlich ist, der kann auch die Lösung aus phpMyAdmin nehmen:
if (get_magic_quotes_gpc()) {
mysql_query("SELECT ... WHERE `serial` = '".mysql_real_escape_string(stripslashes($serial))."'"); } else { mysql_query("SELECT ... WHERE `serial` = '".mysql_real_escape_string($serial)."'"); }
Code:
Wenn möglich, magic_quotes einfach per php.ini abschalten UND diese Überprüfung im Code lassen. Wenn nicht, dann einfach mal an den Hoster wenden oder eben diesen (doch recht unperformanten) Code benutzen.
function PMA_arrayWalkRecursive(&$array, $function, $apply_to_keys_also = false)
{ static $recursive_counter = 0; if (++$recursive_counter > 1000) { die('possible deep recursion attack'); } foreach ($array as $key => $value) { if (is_array($value)) { PMA_arrayWalkRecursive($array[$key], $function, $apply_to_keys_also); } else { $array[$key] = $function($value); } if ($apply_to_keys_also && is_string($key)) { $new_key = $function($key); if ($new_key != $key) { $array[$new_key] = $array[$key]; unset($array[$key]); } } } $recursive_counter--; } if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) { PMA_arrayWalkRecursive($_GET, 'stripslashes', true); PMA_arrayWalkRecursive($_POST, 'stripslashes', true); PMA_arrayWalkRecursive($_COOKIE, 'stripslashes', true); PMA_arrayWalkRecursive($_REQUEST, 'stripslashes', true); } Mit freundlichen Grüßen, Valle Mit freundlichen Grüßen, Valle |
Re: serial von mysql db abfragen
Ja, Magic Quotes... hat sich im Nachhinein als Flopp herausgestellt, weswegen es auch in PHP 6 abgeschafft wird und von vielen Hostern nicht angewandt wird.
Neben MagicQuotes gibt es ja noch diese DB Variante, bei der ' durch '' anstelle \' übersetzt wird. Wenn die Serial aber gar keine Quotes enthält, weil es nur Alphanumerisch ist, braucht man sich um MagicQuotes keine Gedanken machen. |
Re: serial von mysql db abfragen
Zitat:
Zitat:
Mit freundlichen Grüßen, Valle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:31 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