Dieser Artikel stellt Ihnen die gefährlichen Funktionen vor, auf die Sie beim Betrieb von vom Benutzer übermittelten Inhalten in PHP achten müssen. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
Für unsere Programmentwicklung sind Benutzereingaben der erste Einstiegspunkt zur Lösung von Sicherheitsproblemen. Warum sagst du das? Unabhängig davon, ob es sich um SQL-Injection-, XSS- oder Datei-Upload-Schwachstellen handelt, hängen sie alle mit den vom Benutzer übermittelten Eingabeparametern zusammen. Heute werden wir nicht auf diese Probleme eingehen. Es gibt einige gefährliche Funktionen, die nicht direkt für Vorgänge verwendet werden können, z Für den Benutzer verwenden wir diesen Parameter direkt, um die Datei ohne Überprüfung einzuschließen. Der Parameter, den wir übergeben, ist ?g=/etc/passwd, dann werden wahrscheinlich alle Benutzerkontoinformationen auf dem Server direkt durchgesickert.
Außerdem sind einige Funktionen, die Shell-Befehle ausführen, äußerst gefährlich.
include($g);
Wenn der Parameter, den wir übergeben, ?g=ls -la / ist, wird auch das gleiche Serververzeichnis angezeigt. Dies zeigt nur die Verzeichnisstruktur. Wenn andere, erschreckendere Befehle verwendet werden, sind die Folgen katastrophal.
In ähnlicher Weise verarbeiten wir Dateien häufig anhand bestimmter IDs oder bestimmter Dateinamen, insbesondere wenn wir Dateien löschen. Wenn wir kein Urteil fällen, löschen wir möglicherweise direkt einige sehr wichtige Dateien.
echo system($g);
Wir erstellen $g weiterhin als ?g=../../../xxxx. Wenn die Berechtigungen dies zulassen, können verschiedene Systemdateien gelöscht werden.
Tatsächlich wurden im offiziellen PHP-Handbuch einige gute Vorschläge für diese Inhalte gegeben. Wir können uns auch direkt ansehen, was im PHP-Handbuch steht.
Die größten Schwächen vieler PHP-Programme sind keine Probleme mit der PHP-Sprache selbst, sondern werden durch das geringe Sicherheitsbewusstsein der Programmierer verursacht. Daher müssen Sie immer auf mögliche Probleme in jedem Codeabschnitt achten, um die möglichen Auswirkungen einer falschen Datenübermittlung zu ermitteln.
Achten Sie immer auf Ihren Code, um sicherzustellen, dass jede vom Client übermittelte Variable ordnungsgemäß überprüft wird, und stellen Sie sich dann einige Fragen:
Tatsächlich können die meisten Sicherheitsprobleme gelöst werden, solange diese Vorschläge befolgt werden. Auch hier können Sie keiner Benutzerausgabe vertrauen. Bitte führen Sie während des Tests verschiedene Überprüfungen durch, einschließlich, aber nicht beschränkt auf, Grenzwerte, Sonderzeichen, Sonderbefehle, außerhalb der Grenzen liegende Werte, Verzeichnisberechtigungen usw. Verwenden Sie Benutzereingaben nicht als direkte Parameter für Dateien, Skriptausführung und Dateivorgänge, es sei denn, dies ist erforderlich. Wenn Sie sie verwenden müssen, müssen Sie verschiedene Formen der Filterung und Überprüfung durchführen.
Testcode:
unlink('./' . $g);
Empfohlenes Lernen:
php-Video-TutorialDas obige ist der detaillierte Inhalt vonIn drei Minuten lernen Sie die gefährlichen Funktionen kennen, auf die Sie beim Betrieb von vom Benutzer übermittelten Inhalten in PHP achten müssen.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!