PHP / MySQL Sicherheit - wo soll ich anfangen?

8

Ich bin ein PHP / MySQL-Anfänger, der nichts über Online-Sicherheit weiß.

Könnten Sie mich auf einige Ressourcen hinweisen, die mein Wissen unterstützen? (Anfängerlevel, bitte!)

    
Kevin Brown 25.08.2009, 01:47
quelle

5 Antworten

8

Ich schlage zwei Dinge vor:

  1. Stellen Sie sicher, dass Register_globals deaktiviert ist.
  2. Verwenden Sie vorbereitete Aussagen .
karim79 25.08.2009, 01:51
quelle
5

Diese Frage ist gut beantwortet und deckt MySQL ab Injektionsangriffe (eine der häufigsten Sorgen. Diese Frage ist ebenfalls gut dokumentiert und deckt XSS-Angriffe (Cross Site Scripting) gut ab.

Zuletzt erfahren Sie, was PHP.INI ist und wie es eingerichtet wird und was tatsächlich geöffnet / geschlossen und an / aus ist. Ein guter Host wird beispielsweise niemals register globals aktivieren, aber Sie sollten zumindest wissen, was es ist und warum es überprüft werden soll. PHP Security verfügt über Ressourcen für diese und viele andere PHP-Sicherheitsfragen.

    
Alex Mcp 25.08.2009 01:50
quelle
1

PHP ist vielleicht nicht der beste Start. Vor allem, wenn Sie Ihren eigenen Code größtenteils selbst erstellen. Es hält nicht gerade Ihre Hand mit Sicherheitsproblemen. (fd: Ich wünschte, PHP würde aus einer Vielzahl von Gründen weggehen.)

Aber einige allgemeine Regeln:

  • Vertraue keinem, was 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 ein <select> mit a, b und c gegeben hast, bedeutet das nicht, dass du eins 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 anderer nicht in die Produktion, wenn Sie nicht sicher sind, wie das 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, aber häufiger blind zu verwenden.
  • Vertraue dir nicht selbst daran, das gleiche Ritual an Dutzenden von verschiedenen Orten durchzuführen. Ja, mysql_real_escape_string() wird die SQL-Injektion reparieren, aber Sie müssen daran denken, sie ü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.
Eevee 25.08.2009 02:01
quelle
1

Chris Shiflett ist der Einstieg in PHP Programmierung und Sicherheit:

Bill Karwin 25.08.2009 02:22
quelle
1

Wenn Sie etwas Zeit haben, können Sie sich die Folien anschauen, die Stefan Esser während seiner Konferenz auf der Dutch PHP Conference vor ein paar Monaten, mit dem Titel" PHP Security Crash Course für Anfänger ".

Es gibt ein paar PDFs:

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, um sie zu vermeiden sind spezifisch; Sie können also viele Informationen auf Websites wie Wikipedia oder der OWASP-Website

finden     
Pascal MARTIN 25.08.2009 04:34
quelle

Tags und Links