Jeder weiß, dass PHP derzeit die beliebteste Programmiersprache für Webanwendungen ist. Aber wie andere Skriptsprachen weist auch PHP mehrere gefährliche Sicherheitslücken auf. In diesem Tutorial werfen wir daher einen Blick auf einige praktische Tipps, die Ihnen helfen, einige häufige PHP-Sicherheitsprobleme zu vermeiden.
Tipp 1: Verwenden Sie geeignete Fehlerberichte
Im Allgemeinen vergessen viele Programmierer während des Entwicklungsprozesses immer, Programmfehlerberichte zu erstellen, was ein äußerst großer Fehler ist. Denn eine ordnungsgemäße Fehlerberichterstattung ist nicht nur das beste Debugging-Tool, sondern auch ein hervorragendes Tool zur Erkennung von Sicherheitslücken, mit dem Sie so viele Probleme wie möglich finden können, bevor Sie die Anwendung tatsächlich online stellen.
Natürlich gibt es viele Möglichkeiten, Fehlerberichte zu aktivieren. Beispielsweise können Sie in der Konfigurationsdatei von php.in festlegen, dass
Fehlerberichterstattung zur Laufzeit starten soll
error_reporting(E_ALL );
Fehlerberichterstattung deaktivieren
error_reporting(0);
Tipp 2: PHPs Weak-Attribut nicht verwenden
Es gibt mehrere PHP-Eigenschaften, die auf AUS gesetzt werden müssen. Im Allgemeinen sind sie in PHP4 vorhanden, ihre Verwendung wird jedoch in PHP5 nicht empfohlen. Insbesondere in PHP6 wurden diese Attribute entfernt.
Globale Variablen registrieren
Wenn register_globals auf ON gesetzt ist, entspricht dies der Einstellung Umgebung, GET, POST, COOKIE oder Servervariablen werden alle als globale Variablen definiert. Zu diesem Zeitpunkt müssen Sie $_POST['username'] nicht schreiben, um die Formularvariable 'username' zu erhalten. Sie benötigen nur '$username', um diese Variable zu erhalten.
Dann denken Sie bestimmt, dass das Setzen von register_globals auf ON so praktische Vorteile hat, warum es nicht nutzen? Denn wenn Sie dies tun, führt dies zu vielen Sicherheitsproblemen und es kann auch zu Konflikten mit lokalen Variablennamen kommen.
Sehen Sie sich zum Beispiel den folgenden Code an:
if( !empty( $_POST[‘username'] ) && $_POST[‘username'] == ‘test123′ && !empty( $_POST[‘password'] ) && $_POST[‘password'] == “pass123″ ) { $access = true; }
Wenn register_globals zur Laufzeit auf ON gesetzt ist, muss der Benutzer nur access=1 in einer Abfragezeichenfolge übertragen, um das PHP-Skript zu erhalten Lassen Sie alles daraus laufen.
Globale Variablen in .htaccess deaktivieren
php_flag register_globals 0
Globale Variablen in php.ini deaktivieren
register_globals = Off
Ähnliche magic_quotes_gpc, magic_quotes_runtime, magic_quotes_sybase Diese magischen Zitate deaktivieren
werden in der .htaccess-Datei festgelegt
php_flag magic_quotes_gpc 0 php_flag magic_quotes_runtime 0
werden in php.ini festgelegt
magic_quotes_gpc = Off magic_quotes_runtime = Off magic_quotes_sybase = Off
Tipp 3: Benutzereingaben validieren
Natürlich können Sie auch Benutzereingaben validieren. Zuerst müssen Sie den Datentyp kennen, den der Benutzer eingeben soll. Auf diese Weise können Sie browserseitig darauf vorbereitet sein, zu verhindern, dass Benutzer Sie böswillig angreifen.
Tipp 4: Vermeiden Sie Cross-Site-Scripting-Angriffe durch Benutzer
In Webanwendungen ist es einfach, Benutzereingaben im Formular zu akzeptieren und dann die Ergebnisse zu melden. Beim Akzeptieren von Benutzereingaben wäre es sehr gefährlich, Eingaben im HTML-Format zuzulassen, da dies auch dazu führen würde, dass JavaScript auf unvorhersehbare Weise eindringt und direkt ausgeführt wird. Selbst wenn nur eine solche Sicherheitslücke besteht, können Cookie-Daten gestohlen werden und das Konto des Benutzers gestohlen werden.
Tipp 5: Verhindern Sie SQL-Injection-Angriffe
PHP bietet grundsätzlich keine Tools zum Schutz Ihrer Datenbank, also wenn Sie eine Verbindung zur Datenbank herstellen , Sie können die folgende Funktion mysqli_real_escape_string verwenden.
$username = mysqli_real_escape_string( $GET[‘username'] ); mysql_query( “SELECT * FROM tbl_employee WHERE username = '”.$username.“‘”);
Das obige ist der detaillierte Inhalt vonWie man eine hochsichere PHP-Website erstellt, Zusammenfassung der Sicherheitsaspekte, die bei der Erstellung einer Website beachtet werden müssen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!