nookie
I did it all for the nookie
Guten Tag,
ich bin gerade dabei einen Login zu programmieren, der auch soweit funktioniert. Doch durch die OR 1=1 Klausel lässt sich der Login austricksen. Wenn ich nun als Username und Passwort " ' OR '1'='1" einfüge, werde ich dennoch als admin in eingeloggt. Deswegen kam mir die Idee, diese Zeichen einfach in der Eingabe zu entfernen mit folgender Funktion, die aber bisher noch nicht ganz funktioniert da ich die pattern noch definieren muss.
Wenn jemand einen Fehler findet oder verbesserungsvorschläge hat bitte melden. Das ganze soll dann im Login wie folgt aussehen.
ich bin gerade dabei einen Login zu programmieren, der auch soweit funktioniert. Doch durch die OR 1=1 Klausel lässt sich der Login austricksen. Wenn ich nun als Username und Passwort " ' OR '1'='1" einfüge, werde ich dennoch als admin in eingeloggt. Deswegen kam mir die Idee, diese Zeichen einfach in der Eingabe zu entfernen mit folgender Funktion, die aber bisher noch nicht ganz funktioniert da ich die pattern noch definieren muss.
PHP:
function safe_input($input) {
// define any array
$any = array();
$any[] = '-';
$any[] = '>';
$any[] = '<';
$any[] = '/';
$any[] = '"';
$any[] = '.';
$any[] = ',';
$any[] = ':';
$any[] = ';';
$any[] = "'";
$any[] = '"';
$any[] = '}';
$any[] = '{';
$any[] = '[';
$any[] = ']';
$any[] = '(';
$any[] = ')';
if($input != '') {
$pattern = "";
$input = preg_replace($pattern, ' ', $input);
}
}
Wenn jemand einen Fehler findet oder verbesserungsvorschläge hat bitte melden. Das ganze soll dann im Login wie folgt aussehen.
PHP:
$wl_user = mysql_real_escape_string($_POST['wl_user']);
$wl_user = stripslashes($wl_user);
$wl_user = safe_input($wl_user);
$wl_pwd = mysql_real_escape_string($_POST['wl_pwd']);
$wl_pwd = stripslashes($wl_pwd);
$wl_pwd = safe_input($wl_pwd);