PHP-Anwendungen werden oft gehackt, weil:
Es gibt zu viele PHP-Anwendungen.
Es ist einfach zu lernen und zu schreiben.
Schlechtes PHP ist einfach zu schreiben.
So einfach ist das. PHP erfreut sich seit vielen Jahren großer Beliebtheit. Je beliebter PHP wird, desto mehr Schwachstellen werden entdeckt. Die von diesen Hackern entdeckten Schwachstellen liegen selten in der PHP-Verarbeitungs-Engine selbst, sondern sind meist Schwachstellen im Skript selbst.
Das heißt, wenn eine PHP-Anwendung gehackt wird, liegt die Schuld meist beim Programmierer. Entschuldigung, aber es ist wahr.
Sie können sicheres PHP wie jede andere Websprache schreiben. Es ist an der Zeit, sich wirklich mit Sicherheitsproblemen zu befassen.
Der beste Schutz gegen PHP-Hacks
Das Schreiben von sicherem PHP-Code ist keine geheime Kunst, die PHP-Entwicklern verborgen bleibt. Aber das Vertrauen ist so fragmentiert, dass Sie Wochen oder Monate (oder auch nicht so lange) damit verbringen müssen, einen losen Katalog oder eine Faustregel für gute Sicherheitspraktiken zusammenzustellen. Nur echte Erfahrung wird Ihnen zeigen, wie wichtig es ist.
Glücklicherweise hat Ben Edmunds es für Sie erledigt. Kürzlich wurde „Building Secure PHP Apps – a Practical Guide“ veröffentlicht, eines der besten sicherheitsbezogenen Bücher, die ich je gelesen habe, und mit Sicherheit die beste Abdeckung von PHP. In diesem Artikel werde ich detailliert erläutern, warum meiner Meinung nach jeder PHP-Entwickler ihn lesen sollte.
Dieses Buch ist ein prägnanter Leitfaden, der Sie als Entwickler auf die nächste Ebene bringt und es Ihnen ermöglicht, bessere und sicherere Skripte zu erstellen.
Einleitung
Das Buch geht schnell auf die Regeln des gesunden Menschenverstandes der Webentwicklung ein: Vertrauen Sie Ihren Benutzern nicht und filtern Sie alle Eingaben. Beginnen Sie mit einem kleinen Szenario und gehen Sie zu den technischen Methoden über, mit denen Benutzer auf das System zugreifen können. Die Themen des ersten Kapitels sind:
SQL-Injection
Eine große Anzahl zugewiesener Felder
Typkonvertierung
Ein-/Ausgabe filtern
Das sind alles. Das ist etwas, was PHP-Neulinge (und einige Veteranen) immer übersehen haben. Viele betrachten das Filtern von Eingaben als optionalen Schritt und werden in diesem Kapitel ausführlich besprochen.
Beim Lesen wurde ich an meinen ersten Arbeitstag vor vielen Jahren erinnert, als ich mich tief in den vorhandenen Code vertieft und den Code für das neue Benutzererstellungsskript gefunden habe:
if ($_POST["isadmin"] == 1) { // code to set to admin in database }
Als ich diesen Code sah, geriet ich in Panik, weil es ein sehr effizientes Skript ist, das von einem böswilligen Benutzer leicht erraten und eine einfache Formularvariable eingefügt werden könnte, um auf etwa 5.000 Kreditkartennummern und andere persönliche Informationen zuzugreifen.
Als ich tiefer grub, fand ich den folgenden Code:
$sql = "INSERT INTO database (id,name,...) VALUES (" . $_POST["Name"] . ");"
Ich habe diesen Job am ersten Tag so gut wie aufgegeben, weil sie sich auf diesen schrecklichen Code verlassen haben. Der Code ist vorhanden und es liegt in Ihrer Verantwortung, ihn zu ändern, um die Erstellung weiterer Codes zu vermeiden.
In diesem Kapitel wird erläutert, warum Code wie dieser ein großes Risiko darstellt und wie man es beheben kann.
HTTPS und Zertifikate
Dies ist ein weiterer Bereich, in dem Ben Skripte, Geschichten und ein bisschen Humor einbezieht und gleichzeitig das weniger klare Konzept von HTTPS klar erklärt. Er erklärt es so, dass sogar Ihr Chef es verstehen kann.
Dieses Buch beschreibt sehr umfassend die Funktionsweise von Zertifikaten, Zertifikatstypen und Implementierungsmethoden, einschließlich der Bereitstellung auf Apache oder Nginx.
Passwörter
In diesem Buch werden Passwörter, Hashes, Nachschlagetabellen und Salts ausführlich erläutert, was für Entwickler, die Benutzeranmeldesysteme erstellen, unglaublich hilfreich ist.
Dies ist ein Bereich, der selbst im Jahr 2014 schmerzlich fehlte. Ich stoße immer noch auf Apps, die Passwörter im Klartext speichern oder dumme Methoden wie die ROT13-Verschlüsselung verwenden, um sie zu schützen. Tun Sie dies nicht, damit die Leute weiterhin Ihre App und Ihren guten Namen nutzen.
Passwörter und andere sensible Daten sollten sehr schwer zu bekommen sein oder sogar vollen Zugriff auf die Datenbank erhalten. Dieses Buch ist sehr umfassend und bietet Ihnen gute Anleitungen zum Entwerfen besserer Systeme.
Authentifizierung und Zugriffskontrolle
Dieses Buch deckt ein sehr umfassendes Themenspektrum ab. Wenn Sie eine neue PHP-Anwendung erstellen, sind einige der wichtigsten Überlegungen:
Wer hat Zugriff auf welche Ressourcen?
Wer kann den Zugriff anderer Benutzer kontrollieren?
Dies ist ein wichtiger Ort, um über Anwendungen nachzudenken, insbesondere über Anwendungen, die sensible Daten verarbeiten. Ein erheblicher Teil der Entwicklung im Unternehmen ist diesem Thema gewidmet. Wenn Sie Authentifizierung und Zugriffskontrolle nicht richtig einrichten, ist die Wahrscheinlichkeit groß, dass Sie die Benutzer verwirren und mehr Arbeit verursachen. Noch schlimmer sind Serverdatenlücken und/oder Datenbeschädigungen.
Dieses Buch deckt die Grundlagen gut ab und befasst sich dann mit Dingen wie der Steuerung des Zugriffs auf Dateien oder einzelne Seiten einer Anwendung, mit vielen Codebeispielen als Referenz.
Spezifische Exploits
Dieses Buch deckt einige gängige Exploits zur Gefährdung eines Systems ab und geht ausführlich auf Cross-Site-Scripting ein, das wohl die häufigste Art und Weise ist, mit der Angreifer Anwendungen ausnutzen. Es erklärt die verschiedenen Arten von Angriffen und wie Sie sich schützen können.
Nicht schlecht, oder? Über diesen Link können Sie Bücher mit Rabatt kaufen!
Was mir an diesem Buch am besten gefallen hat
Was mir beim Lesen dieses Buchs wirklich gefallen hat, war die Art und Weise, wie die Informationen auf eine Weise präsentiert wurden, die sowohl für Anfänger als auch für erfahrene Programmierer nützlich ist. Es werden verschiedene Konzepte vorgestellt, was sie sind und wie Sie sich schützen können. Es gibt viele Codebeispiele, nicht die „Auffüllung“, die manche Fachbücher haben.
Man kann dieses Buch schnell durchlesen, da es nicht viel Inhalt hat. Neulinge können dieses Buch durchlesen, jedes Thema untersuchen, sich ihren Code ansehen und Korrekturen vornehmen. Denken Sie daran, dass Sie in dieser Angelegenheit ständig überarbeiten müssen. Wenn Sie zurückblicken und sich für den Code schämen, den Sie vor sechs Monaten geschrieben haben, tun Sie das Richtige.
Fortgeschrittenere, erfahrenere Programmierer können diesen Leitfaden verwenden, um ihre Schwächen auszugleichen (geben Sie es zu, egal wie lange Sie schon in dieser Branche tätig sind) und besser zu verstehen, was sie bei der Arbeit tun. Ich habe zum Beispiel jahrelang die Authentifizierung wie verrückt eingesetzt, aber auf dem Niveau, das in diesem Buch behandelt wird, nie darüber nachgedacht.
Egal wer du bist, du wirst etwas lernen. Hören Sie also auf, diesen Artikel zu lesen, und kaufen Sie ein Exemplar! Benutzen Sie diesen Link, um zu kaufen und einen Rabatt zu erhalten! !