PHP bietet Entwicklern große Flexibilität, bringt aber auch potenzielle Sicherheitsrisiken mit sich. Ich werde hier einen Artikel übersetzen und einige Gefühle aus meiner eigenen Entwicklung hinzufügen.
Bei der Entwicklung eines Internetdienstes müssen Sie stets den Sicherheitsgedanken im Auge behalten und im entwickelten Code widergespiegelt. Die PHP-Skriptsprache macht sich keine Sorgen um Sicherheitsprobleme, insbesondere für die meisten unerfahrenen Entwickler. Wann immer Sie über eine Transaktion sprechen, bei der es um Geld geht, müssen Sie besonderes Augenmerk auf Sicherheitsaspekte legen, wie z. B. die Einrichtung eines Forums oder eines Warenkorbs.
Vertrauen Sie dem Formular nicht
Für die allgemeine Javascript-Frontend-Überprüfung, da das Verhalten des Benutzers kann nicht bekannt sein. Wenn Sie beispielsweise die JavaScript-Engine des Browsers ausschalten, werden schädliche Daten an den Server gesendet. Die Überprüfung muss auf der Serverseite erfolgen und die an jedes PHP-Skript übergebenen Daten überprüfen, um XSS-Angriffe und SQL-Injections zu verhindern.
Vertrauen Sie dem Benutzer nicht
Gehen Sie davon aus, dass alle Von Ihrer Website empfangene Daten. Jedes Datenelement muss bösartigen Code und versteckte Bedrohungen enthalten.
Globale Variablen schließen
Nehmen Sie die folgende Konfiguration in der php.ini vor Datei:
register_globals = Off
Wenn diese Konfigurationsoption aktiviert ist, bestehen große Sicherheitsrisiken. Beispielsweise gibt es eine Skriptdatei „process.php“, die die empfangenen Daten in die Datenbank einfügt. Das Formular zum Empfangen von Benutzereingabedaten kann wie folgt aussehen:
<input name="username" type="text" size="15" maxlength="64">
Auf diese Weise registriert PHP nach der Übermittlung der Daten an die Datei „process.php“ eine Variable „$username“ und übermittelt diese Variablendaten an die Datei „process.php“. Gleichzeitig wird eine solche Variable für jede POST- oder GET-Anfrage festgelegt Parameter. Wenn die Initialisierung nicht angezeigt wird, tritt das folgende Problem auf (Referenz: http://www.lai18.com/content/434606.html)
<?php // Define $authorized = true only if user is authenticated if (authenticated_user()) { $authorized = true; } ?>
Hier wird davon ausgegangen, dass die Funktion „authenticated_user“ den Wert der Variablen „$authorized“ ermitteln soll. Wenn die Konfiguration „register_globals“ aktiviert ist, kann jeder Benutzer eine Anfrage senden, um den Wert der Variablen „$authorized“ auf einen beliebigen Wert zu setzen, der umgangen werden soll diese Überprüfung.
Alle diese übermittelten Daten sollten über das vordefinierte integrierte globale Array von PHP abgerufen werden, einschließlich $_POST, $_GET, $_FILES, $_SERVER, $_REQUEST usw., wobei $_REQUEST ein $_GET/$ ist _POST/$_COOKIE ist eine gemeinsame Variable aus drei Arrays. Die Standardreihenfolge ist $_COOKIE, $_POST, $_GET.
Empfohlene Sicherheitskonfigurationsoptionen
Setzen Sie „error_reporting“ auf „Aus“: Fehlerinformationen werden den Benutzern nicht angezeigt. Sie können es während der Entwicklung auf „EIN“ setzen.
Setzen Sie „safe_mode“ auf „Aus“.
register_globals auf Aus setzen
Die folgenden Funktionen deaktivieren: system, exec, passhru, shell_exec, proc_open, popen
open_basedir auf /tmp setzen, damit Sitzungsinformationen angezeigt werden können gespeicherte Berechtigungen und legen Sie ein separates Website-Stammverzeichnis fest.
ist auf Aus eingestellt.
ist auf Aus eingestellt.
🎜>
Erweitertes Lesen
Die Reihe „PHP Security Programming Series“ mit technischen Artikeln wird zusammengestellt und gesammelt.
PHP Security Programming Series Collection sammelt Wissen über PHP-Sicherheitsprogrammierung und bietet Lernreferenzen für PHP-Sicherheitsprogrammierung
1discuz's PHP verhindert SQL-Injection-Funktion
2php-Methode zur Verhinderung von XSS-Angriffen
3PHP Sichere Programmierung: Ausgabe entkommen
4PHP sichere Programmierung: Benutzereingaben filtern
5PHP sichere Programmierung: Benutzerfreundlichkeit und Daten Tracking
6 PHP-sichere Programmierung: Lassen Sie nicht zu, dass irrelevante Personen die Fehlermeldung sehen
7PHP-sichere Programmierung: Sicherheit von register_globals
8PHP-sichere Programmierung: einige Prinzipien des Website-Sicherheitsdesigns
9PHP-Sicherheitsprogrammierung: Über Formular-Spoofing Einreichung
10PHP-sichere Programmierung: HTTP-Request-Spoofing
11PHP-sichere Programmierung: Die Datenbankzugriffsberechtigungen nicht offenlegen
12 Sichere PHP-Programmierung: Abwehr von Cross-Site Request Forgery CSRF
13 Sichere PHP-Programmierung: Formulare und Datensicherheit
14 PHP-Sicherheitsprogrammierung: Angriffe aus der Semantik von URLs
15 PHP-Sicherheitsprogrammierung: Abwehr gegen Datei-Upload-Angriffe
16PHP-sichere Programmierung: Abwehr von Cross-Site-Scripting-Angriffen
17PHP-sichere Programmierung: Sitzung behoben um eine legitime Sitzung zu erhalten
18PHP sichere Programmierung: SQL-Injection verhindern
19PHP sichere Programmierung: Cookie-Offenlegung führt zur Sitzung Hijacking
Sichere 20PHP-Programmierung: Offenlegung des Quellcodes verhindern
Sichere 21PHP-Programmierung: Achten Sie auf Hintertür-URLs
Sichere 22PHP-Programmierung: Abwehr von Session-Hijacking
Sichere 23PHP-Programmierung: Brute-Force-Angriff
24PHP Secure Programming: Passwort-Sniffing und Replay-Angriffe
25PHP Secure Programming: Sichere Praktiken zum Merken des Anmeldestatus
26PHP-sichere Programmierung: Shell Command Injection
27PHP-sichere Programmierung: Risiken beim Öffnen von Remote-Dateien
28PHP Sichere Programmierung: Sicherheitslücke beim Erraten von Dateiverzeichnissen
29PHP Sichere Programmierung: Verhindert die Manipulation von Dateinamen
Sichere 30PHP-Programmierung: Datei enthält Code-Injection-Angriffe
Sichere 31PHP-Programmierung: Bessere Sitzungsdatensicherheit
32PHP Sichere Programmierung Programmierung: Quellcode-Sicherheit von Shared Hosting
33PHP-Sicherheitsprogrammierung: Sitzungsdateninjektion
34PHP-Sicherheitsprogrammierung: Host Durchsuchen des Dateiverzeichnisses
35PHP-sichere Programmierung: PHP-Sicherheitsmodus
36php-Sicherheit verwendet stattdessen $, um den Wert direkt abzurufen von $_GET Zeichen-Escape
37php-Strategie zur Verhinderung von Sicherheitslücken zur Schaffung eines leistungsstarken Webs
38Welcher XSS-Angriff? PHP verhindert XSS-Angriffsfunktion
39 Methoden zum Parsen von PHP, um wiederholte Formularübermittlungen zu verhindern
40php-Sicherheitshund Schwanznerz
41PHP verhindert die domänenübergreifende Formularübermittlung
42php verhindert SQL-Injection, detaillierte Erklärung und Prävention
43php Verhindern Sie SQL-Injection-Codebeispiele
44php Verhindern Sie SQL-Injection-Beispielanalysen und mehrere häufige reguläre Angriffsausdrücke
45PHP Sicherheit: Verhindern Sie, dass Ihr Quellcode oder wichtige Konfigurationsinformationen offengelegt werden
46 Ein einfaches Beispiel für PHP, das die wiederholte Übermittlung von Daten in Beiträgen verhindert
47PHP-Methode zur Verhinderung der Übermittlung gefälschter Daten über eine URL
48PHP-Zusammenfassung mehrerer gängiger Methoden zur Verhinderung der wiederholten Übermittlung von Formularen
49php-Methode, um die Übermittlung gefälschter Daten über die Adressleisten-URL zu verhindern
50php-Methode, um die Übermittlung von Remote-Formularen außerhalb des Standorts zu verhindern
51 Beispiele für PHP-Filter-Paging-Parameter zur Verhinderung von SQL-Injection
52 PHP-Sicherheit: Mögliche Angriffe und Lösungen bei der Installation in Apache Modus
53 Dateisystemsicherheit und vorbeugende Maßnahmen für PHP-Sicherheit
54 Dateisystemsicherheit für PHP-Sicherheit – Null Zeichenproblem
55 PHP-Sicherheit Datenbanksicherheit – SQL-Injection und vorbeugende Maßnahmen
56 Einführung in die PHP-Sicherheit und allgemeine Grundsätze
57PHP-Sicherheit: Mögliche Angriffe und Lösungen bei der Installation im CGI-Modus
58PHP-Sicherheit: Vom Benutzer übermittelte Daten
59PHP Security Database Security – Design, Verbindung und Verschlüsselung
60PHP Security Magic Quotes – Was sind Magic Quotes und wie um sie zu verwenden
61PHP Security Hidden PHP Script Extension
62PHP Security Use Register Globals
63PHP-Sicherheitsfehlerbericht
64php-Methoden zur Verhinderung böswilliger Aktualisierungen und Ticketaktualisierungen
65php Zusammenfassung der Methoden, um die Aktualisierung der Website zu verhindern
Häufige Sicherheitslücken der 66PHP-Website und Zusammenfassung der entsprechenden vorbeugenden Maßnahmen
Verwandte Empfehlungen:
Verwandte Zusammenfassung von Sicherheitsproblemen in der PHP-Entwicklung_PHP-Tutorial
Das obige ist der detaillierte Inhalt vonEinige Sicherheitsprobleme bei der PHP-Entwicklung wurden kompiliert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!