Heim > Backend-Entwicklung > PHP-Tutorial > Wie schreibe ich bei einer Injektion in eine PHP-Webanwendung die Benutzeranmeldung, um zu verhindern, dass die Anmeldung durch Injektion umgangen wird?

Wie schreibe ich bei einer Injektion in eine PHP-Webanwendung die Benutzeranmeldung, um zu verhindern, dass die Anmeldung durch Injektion umgangen wird?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-08-04 09:19:35
Original
1095 Leute haben es durchsucht

Wenn es eine Injektion in einer PHP-Webanwendung gibt, wie schreibe ich die Benutzeranmeldung, um zu verhindern, dass die Anmeldung durch Injektion umgangen wird?

Vorausgesetzt, die Bedingungen können nicht geändert werden, antworten Sie nicht, um eine Injektion zu verhindern

Allgemeines 2-Wege-Schreiben
·
1
$sql = "select * from user where user_name=$username and password=$password";
$res = $db_obj-> get_one($sql);
if($res){
//Anmeldung erfolgreich
}
·
·
2
$sql = "select * from user where user_name=$username";
$res = $db_obj->get_one($sql);
if($res[password]==md5($password)){
//Anmeldung erfolgreich
}
·
Beide der oben genannten 2 können umgangen werden, bitte schreiben Sie auf sichere Weise

Antwortinhalt:

Wenn es eine Injektion in einer PHP-Webanwendung gibt, wie schreibe ich die Benutzeranmeldung, um zu verhindern, dass die Anmeldung durch Injektion umgangen wird?

Vorausgesetzt, die Bedingungen können nicht geändert werden, antworten Sie nicht, um eine Injektion zu verhindern

Allgemeines 2-Wege-Schreiben
·
1
$sql = "select * from user where user_name=$username and password=$password";
$res = $db_obj-> get_one($sql);
if($res){
//Anmeldung erfolgreich
}
·
·
2
$sql = "select * from user where user_name=$username";
$res = $db_obj->get_one($sql);
if($res[password]==md5($password)){
//Anmeldung erfolgreich
}
·
Beide der oben genannten 2 können umgangen werden, bitte schreiben Sie auf sichere Weise

Da eine Injektionsschwachstelle vorliegt, kann nicht nur die Anmeldung umgangen werden, sondern auch Ihre Datenbank ist unsicher. Wenn Sie Ihre Tabellenstruktur kennen, ist das Einfügen eines Administratorkontos auch sehr einfach. Der Schlüssel liegt also darin, eine Injektion zu verhindern, und nicht darin, was nach der Injektion zu tun ist.

Das einfachste
$sql = "select * from user where user_name='".addslashes($username)."'";

Verwendet die allgemeine Schreibweise nicht orm zum Lesen und Schreiben der Datenbank?
Handgeschriebenes SQL ist von Natur aus unsicher

Verwenden Sie vorbereitete PDO-Anweisungen

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage