Wehrloser Feed PHP. PHP-Sicherheitslücke und Schutz vor PHP-Injections. Regeln für sicheres Programmieren in PHP. Vermeiden Sie Informationslecks

Überall auf der Welt ist auf Flughäfen der Slogan „Sicherheit ist kein Scherz“ zu finden. Jeder Systemadministrator sollte neben seinem PHP-Server den gleichen Slogan anbringen. Und jeder, der eine Verbindung zu einem Server im Internet herstellt, muss angemessene Sicherheitsmaßnahmen ergreifen, sonst riskiert er, Daten und sogar Geld an böswillige Hacker zu verlieren. Software können mit der Tastatur ihres Computers Schaden anrichten.

Ein Website-Entwickler, der über Sicherheitsprobleme besorgt ist, muss ständig wiederholen: „Vertrauen Sie dem Netzwerk nicht.“ Wenn Sie Bedenken hinsichtlich des Schutzes Ihrer Website haben, wiederholen Sie diese Aussage beim Codieren zukünftiger Seiten Ihrer Website. Alle über das Netzwerk an den Server übertragenen Informationen (sei es URL, Daten von HTML-Formulare oder Daten, die über einen anderen Netzwerkport kommen) sollten als potenziell gefährlich angesehen werden. In diesem Artikel werden verschiedene Methoden zur Sicherung eingehender Informationen vorgeschlagen. Man muss diese Methoden nicht nur anwenden, sondern auch darauf achten bestimmte Zeit andere potenzielle Gefahren zu identifizieren und Wege zu finden, diese zu verhindern.

Die zweite Faustregel für die Erstellung einer sicheren Website lautet: „Minimieren Sie den Schaden.“ Was passiert, wenn sich das von Ihnen geschriebene Programm, das Sie für absolut zuverlässig halten, tatsächlich als angreifbar erweist? Um völlig sicher zu sein, begrenzen Sie den Schaden, den ein Angreifer durch die Ausnutzung dieser Schwachstelle anrichten könnte.

Wenn Besucher Ihre Website besuchen, hoffen sie, dass die Website gültige Informationen enthält, die ihnen oder ihren Computern keinen Schaden zufügen, und dass die von ihnen bereitgestellten Informationen ordnungsgemäß behandelt werden. Bei der Interaktion mit einer Website besteht für einen Besucher immer ein gewisses Risiko einer Sicherheitsverletzung, unabhängig davon, ob es sich um eine Unterhaltungs-, Informations- oder E-Commerce-Website handelt. Die Verantwortung für den Schutz der Besucher vor solchen Risiken liegt beim Website-Designer. Das bedeutet, dass Sie nicht nur die von Besuchern bereitgestellten Informationen sicher auf Ihrem Server speichern müssen, sondern auch Maßnahmen ergreifen müssen, um die bereitgestellten Informationen zu schützen, während sie von den Computern der Besucher auf Ihren Server übertragen werden.

Aber all diese Überlegungen sollten Ihren Absichten, beispielsweise Ihre E-Commerce-Website online zu stellen, nicht im Wege stehen.

Mögliche Angriffe

Das Anschließen eines Servers an das Internet kann mit der Eröffnung eines Geschäfts an einer belebten Straße verglichen werden. Sie möchten viele Besucher haben, aber ohne Vorsichtsmaßnahmen werden Sie möglicherweise feststellen, dass Ihre Nachlässigkeit nicht von gewöhnlichen Besuchern, sondern von sehr unerwünschten Gästen ausgenutzt wird.

Gewöhnlich Hacker Nennen Sie diejenigen, die korrekter benannt werden würden Software-Sicherheits-Hacker. In der Computerwelt sind Sicherheitsknacker Spezialisten, die mit Glück oder Geschick Sicherheitslücken überwinden Computersysteme und Schäden verursachen. Und Hacker sind Programmierer, die meisterhaft Programme schreiben können und nicht nur in der Lage sind, komplexen Code zu verstehen, sondern auch selbstständig effektiven (und für Außenstehende oft unzugänglichen) Code in vielen Sprachen zu schreiben. Für einen Programmierer ist der Erwerb des Titels „Hacker“ eine Ehre, und der Titel „Software-Cracker“ bedeutet offenbar, dass sein Besitzer ein Auge auf die „Gesucht“-Beiträge haben muss.

Da sie sich nicht darüber im Klaren sind, wie demütigend der Titel „Software-Cracker“ ist, beschreiten viele unerfahrene Programmierer diesen Weg, indem sie auf Tools und Skripte zurückgreifen, die sie im Internet finden. Solche unerfahrenen Cracker nennt man Script-Kiddies oder in unserer Sprache Kulhatsker. Diese Menschen verstehen oft kaum, was sie tun. Typischerweise steckt diese Kategorie von Tätern hinter primitiven Angriffen wie der Kompromittierung von Websites, XSS- und SQL-Injections.

Website-Kompromittierung und XSS-Angriffe

Fälle von Website-Kompromittierung, die oft eher ein Ärgernis als wirklich schädlich sind, kommen recht häufig vor, da viele Websites einem Software-Sicherheitshacker die Möglichkeit bieten, der Welt zu verkünden, dass es ihm gelungen ist, sein Ziel zu erreichen. Um eine schlecht gestaltete Website zu kompromittieren, genügt manchmal die Verwendung eines Webbrowsers. Betrachten Sie zum Beispiel das folgende Programm:

Seite mit einem einfachen Kommentarformular PHP-Grundlagen

Dieses Programm implementiert ein Kommentarsystem in einer sehr primitiven Form (wenn Sie mein PHP-Tutorial von Anfang an studieren, sind Sie möglicherweise noch nicht mit Datenbankoperationen vertraut; wenn ja, empfehle ich Ihnen, zu diesem Artikel zurückzukehren, nachdem Sie die relevanten Informationen gelesen haben Material zu MySQL).

Beim Lesen dieses Codes beginnt ein erfahrener Programmierer, sich nicht ganz sicher zu fühlen (denken Sie daran: „Vertrauen Sie dem Netzwerk nicht“). Ein solches Programm akzeptiert Formulardaten, von denen erwartet wird, dass sie Kommentartext enthalten. Dieser Text wird der Variablen $comment zugewiesen und in der Datenbank gespeichert, um zukünftigen Besuchern angezeigt zu werden. Wenn die eingegebenen Daten unseren Erwartungen entsprechen, liegt kein Problem vor.

Versetzen Sie sich nun für einen Moment in die Lage des Kühlers und stellen Sie sich vor, was passieren würde, wenn die Eingabe HTML-Deskriptoren enthalten würde. Das einfaches Programm fügt solche Deskriptoren automatisch in die generierte Seite ein und diese verzerrte Seite wird in den Browsern anderer Besucher statt wie gewohnt angezeigt. Ein Deskriptor, der aus Sicht der Datensicherheit besonders gefährlich sein kann, ist der . Ein Sicherheitsknacker könnte den folgenden Kommentar einfügen:

Einschleusung von bösartigem JavaScript-Code

Diese Art von Angriff wird als bezeichnet Cross-Site-Scripting oder XSS. Nach dem Schließen und Öffnen dieser Seite erhält der Browser ein solches Handle und beginnt sofort mit dem Laden der Seite der gefälschten Site und nicht der Seite der gehackten Site. Mit ein wenig Einfallsreichtum kann ein Sicherheitshacker dann das Vertrauen der Besucher in Ihre Website ausnutzen, um persönliche Informationen wie Passwörter oder Kreditkartennummern abzugreifen (durch Phishing, bei dem das Design und die Struktur einer bösartigen Website nachgeahmt werden, um sie zu ähneln). die gehackte Seite).

Lösung ähnliches Problem ist, dass Eingabedaten aus Sicherheitsgründen vorverarbeitet werden sollten. In diesem Fall ist es notwendig, alle Zeichen, die für den Browser eine besondere Bedeutung haben, in eine sichere Form umzuwandeln. Glücklicherweise verfügt PHP über eine Möglichkeit, genau diese Konvertierung durchzuführen. Die Funktion htmlentities() wandelt die Zeichen , „ und & in Darstellungen dieser Zeichen in Form sogenannter HTML-Zeichenentitäten (z. B

gastroguru 2017