2009-08-25 12 views

Antwort

5

This Frage ist gut beantwortet und deckt MySQL-Injection-Angriffe (eine der häufigsten Bedenken. This Frage auch gut dokumentiert ist und deckt XSS (Cross-Site-Scripting) Angriffe gut.

Schließlich lernen Sie PHP.INI und wie man es einrichten und was ist eigentlich geöffnet/geschlossen und an/aus.Ein guter Host wird zum Beispiel nie register globals, aber Sie sollten zumindest wissen, was es ist und warum man es überprüft PHP Security hat Ressourcen auf diesem und vielen anderen PHP-Sicherheitsproblemen

1

PHP könnte nicht der beste Start sein. Vor allem, wenn Sie Ihren eigenen Code größtenteils selbst erstellen. Es hält nicht gerade Ihre Hand mit Sicherheitsproblemen. (Fd: möchte ich PHP für eine Vielzahl von Gründen weggehen würde.)

Aber einige allgemeine Regeln:

  • Sie nichts vertrauen, die von außen kommt. Nehmen Sie immer an, der Benutzer ist ein Idiot, der versucht, Ihre App zu brechen. Die meisten von ihnen werden natürlich nicht sein, aber irgendwann wird es jemanden geben, der es ist. Nur weil du dem Browser eine <select> gegeben hast, die a, b und c enthält, heißt das nicht, dass du eine davon zurückbekommst. Javascript ist keine Garantie für irgendetwas. Schiedsrichter können leicht gefälscht werden. POST-Daten können leicht gefälscht werden. Textfelder können ein beliebiges Zeichen enthalten, nicht nur diejenigen, die Sie erwarten.
  • Kopieren Sie den Code von anderen nicht in die Produktion, wenn Sie nicht sicher sind, wie es funktioniert. Sie haben keine Ahnung, wie viel Aufmerksamkeit der Autor für die Sicherheit hat. Meiner Erfahrung nach scheint PHP copypasta insbesondere weniger zuverlässig zu sein, wird aber häufiger blind wiederverwendet.
  • Vertraue dir nicht selbst, das gleiche Ritual an Dutzenden von verschiedenen Orten durchzuführen. Ja, mysql_real_escape_string() wird SQL Injection beheben, aber dann müssen Sie daran denken, es überall zu verwenden. Dies schafft viele Orte, an denen Sie einen Fehler machen könnten und vergessen Sie Ihr Flucht-Ritual. Verwenden Sie stattdessen vorbereitete Anweisungen, und das Problem verschwindet vollständig. Ein weiteres Beispiel: Pylons (ein Python-Framework) richtet seine Templates so ein, dass jede Variable HTML-maskiert ist, wenn Sie nicht explizit etwas anderes verlangen. XSS ist kein Problem mehr, und ich muss mir keine Sorgen machen, dass ich manuell alles, was ich drucke, umgehen kann.
1

Wenn Sie einige Zeit haben, können Sie einen Blick auf den Dias von Stefan Esser während seiner conference at the Dutch PHP Conference vor ein paar Monaten verwendet nehmen könnten, der Titel „PHP Sicherheit Crash-Kurs für Anfänger“ war.

Es gibt ein paar PDF:

Diese könnten hilfreich sein.

Dann zögern Sie nicht, ein bisschen nach nicht-PHP-spezifischen Informationen zu suchen: einige Sicherheitsprobleme (wie XSS, SQL Injections, CSRF, ...) sind nicht spezifisch für PHP: nur die technischen Mittel zu vermeiden sie sind spezifisch; Also, Sie könnten viele Informationen auf Websites wie Wikipedia finden, oder die OWASP website

Verwandte Themen