Heim  >  Artikel  >  Backend-Entwicklung  >  Häufige PHP-Angriffe (detaillierte Erklärung von 6 Angriffsarten)

Häufige PHP-Angriffe (detaillierte Erklärung von 6 Angriffsarten)

不言
不言Original
2018-04-03 11:26:212291Durchsuche

Dieser Artikel stellt häufige PHP-Angriffe vor (detaillierte Erklärungen zu 6 Arten von Angriffen). Er kann auch als Referenz für diejenigen dienen, die gemeinsam einen Blick darauf werfen

1. SQL-Injection

SQL-Injection ist ein böswilliger Angriff, bei dem Benutzer SQL-Anweisungen in Formularfelder eingeben, um die normale SQL-Ausführung zu beeinträchtigen. Es gibt auch eine Möglichkeit, die über den Befehl system() oder exec() injiziert wird und über denselben SQL-Injection-Mechanismus verfügt, aber nur auf Shell-Befehle abzielt.


[python]Einzelkopie anzeigen


Häufige PHP-Angriffe (detaillierte Erklärung von 6 Angriffsarten)Häufige PHP-Angriffe (detaillierte Erklärung von 6 Angriffsarten)

  1. $username = $_POST['username'] ;

  2. $query = "select * from auth where username = '".$username."'";

  3. echo $query; >

    $db = new mysqli(
  4. 'localhost'
  5. , 'demo', 'demo ', 'demodemo' ); $result = $db->query($query); 🎜>if

  6. ($result && $result->num_rows) {
  7. echo

    "
    Erfolgreich angemeldet“;

  8. } else {

  9. echo "
    Anmeldung fehlgeschlagen"
    ;

  10. }

    SQL-Injection-Optionen verhindern:

* Verwenden Sie mysql_real_escape_string(), um Daten zu filtern
* Überprüfen Sie manuell, ob alle Daten den richtigen Datentyp haben
*Verwenden Sie vorbereitete Anweisungen und Variablen binden
*Vorbereitete Anweisungen verwenden
*Daten und SQL-Logik trennen
*Vorverarbeitete Anweisungen werden automatisch gefiltert (z. B. maskiert). )
*Verwenden Sie dies als Codierungsstandard, um Neulingen im Team zu helfen, die oben genannten Probleme zu vermeiden

[python ]
Einzelexemplar anzeigen


Häufige PHP-Angriffe (detaillierte Erklärung von 6 Angriffsarten)Häufige PHP-Angriffe (detaillierte Erklärung von 6 Angriffsarten)

    $query =
  1. 'wählen Sie Namen, Bezirk aus der Stadt, in der der Ländercode=?' 🎜> $countrycode = 'hk';

  2. $stmt ->bind_param("s", $countrycode);

  3. $stmt->execute( );

  4. $stmt->bind_result($name, $district);

  5. while ( $stmt ($stmt->fetch() ){

  6. echo $name.', '.$district; 🎜>

  7. }    $stmt ->close();  

  8. }

  9. 2. XSS-Angriff

    XSS (Cross-Site Scripting) ist ein Angriff, bei dem der Benutzer einige Daten in Ihre Website eingibt, einschließlich clientseitigem Skript (normalerweise JavaScript). Gibt die Daten aus, wenn Sie sie nicht filtern. Dieses Skript wird ausgeführt, wenn der vom Benutzer übermittelte Textinhalt empfangen wird.
  10. >*Webseiten oder Formulare beschädigen
*Cookies stehlen

*AJAX(XMLHttpRequest)
XSS-Angriffe verhindern

Um XSS-Angriffe zu verhindern, verwenden Sie die PHP-Funktion htmlentities() zum Filtern und anschließenden Ausgeben an den Browser. >Die grundlegende Verwendung von htmlentities() ist einfach. aber es gibt viele erweiterte Steuerelemente, siehe XSS-Spickzettel


3. Sitzungsfixierung

Sicher, vorausgesetzt, eine PHPSESSID ist schwer zu erraten . PHP kann jedoch eine Sitzungs-ID über ein Cookie oder eine andere URL akzeptieren 🎜>

Dies ist die gleiche Idee wie bei der Sitzungsfixierung, es geht jedoch darum, die Sitzungs-ID vom Angreifer zu stehlen, wenn die Sitzungs-ID in einem Cookie gespeichert ist. Kann auch durch Sniffing oder gestohlen werden von einem Proxyserver, wenn die Sitzungs-ID in der URL enthalten ist:
*ID aktualisieren
*Bei Verwendung von Sitzungen stellen Sie bitte sicher, dass Benutzer SSL verwenden





[python]

Klartext anzeigen


  1. Häufige PHP-Angriffe (detaillierte Erklärung von 6 Angriffsarten)'http://example.com/single_click_to_buy.php?user_id=123&item=12345'>


Verhindern Sie die Fälschung standortübergreifender Anfragen
Stellen Sie im Allgemeinen sicher, dass der Benutzer dies tut die aus Ihrem Formular stammen, und stimmen mit jedem Formular überein, das Sie versenden. Es gibt zwei Punkte, die Sie beachten müssen:
Wenden Sie geeignete Sicherheitsmaßnahmen für Benutzersitzungen an, z. B. die Aktualisierung von IDs für jede Sitzung und die Verwendung von SSL für Benutzer.
Generieren Sie ein weiteres einmaliges Token und betten Sie es in das Formular ein, speichern Sie es in der Sitzung (eine Sitzungsvariable) und überprüfen Sie es beim Absenden.


6. Code-Injection

Code-Injection wird durch die Ausnutzung von Computerschwachstellen durch die Verarbeitung ungültiger Daten verursacht. Das Problem tritt auf, wenn Sie versehentlich beliebigen Code ausführen, normalerweise über die Dateieinbindung. Schlecht geschriebener Code kann dazu führen, dass eine Remote-Datei eingebunden und ausgeführt wird. Wie viele PHP-Funktionen kann auch require eine URL oder einen Dateinamen enthalten, zum Beispiel:


[python]view plain copy


Häufige PHP-Angriffe (detaillierte Erklärung von 6 Angriffsarten)Häufige PHP-Angriffe (detaillierte Erklärung von 6 Angriffsarten)

  1. Thema wählen:

  2. grün>Grün

  3. 🎜> >

  4. if($theme) {

  5. require( $theme.'.txt');

  6. } 🎜>

    ?> ;
  7. Im obigen Beispiel durch Übergabe eines Dateinamens oder eines vom Benutzer eingegebenen Dateinamens, um Dateien einzuschließen, die mit „http://“ beginnen.


Code-Injection verhindern

* Benutzereingaben filtern
* In php.ini festlegen, um „allow_url_fopen“ und zu deaktivieren allow_url_include. Dadurch wird „require/include/fopen“ für Remote-Dateien deaktiviert.
Andere allgemeine Grundsätze

1. Verlassen Sie sich nicht auf die Serverkonfiguration, um Ihre Anwendung zu schützen, insbesondere wenn Ihr Webserver/PHP von Ihrem ISP verwaltet wird oder Ihre Website möglicherweise an andere Orte migriert/bereitgestellt wird und dann in Zukunft von anderen Orten an andere Orte migrieren/bereitstellen. Bitte betten Sie sicherheitsrelevante Prüfungen/Logik in Ihren Website-Code ein (HTML, JavaScript, PHP usw.).

2. Entwerfen Sie serverseitige Sicherheitsskripte:


– verwenden Sie zum Beispiel eine einzeilige Ausführung – Einzelpunktauthentifizierung und Datenbereinigung

– zum Beispiel in alle einbetten Sicherheitsrelevante Seiten Eine PHP-Funktion/Datei, die alle Anmelde-/Sicherheitslogikprüfungen übernimmt

3. Stellen Sie sicher, dass Ihr Code aktualisiert und mit den neuesten Patches gepatcht ist.

Verwandte Empfehlungen:

PHP-Angriffs-Website-Verteidigungscode – und Angriffscode-Rückübersetzung_PHP-Tutorial

Das obige ist der detaillierte Inhalt vonHäufige PHP-Angriffe (detaillierte Erklärung von 6 Angriffsarten). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn