2012-10-25 3 views
9

Ich versuche, einen Rahmen zu wählen, die wirklich gute Sicherheit von Web-Applikationen bieten, schützt vor so viel von OWASP Top-10 wie möglich, wie zum Beispiel:Guter PHP-Framework für hohe Sicherheit

  • SQL-Injection
  • XSS
  • CSRF
  • Authentication Authorization
  • usw.

das ist, was ich habe versucht, die Erforschung wirklich stark: CakePHP, Zend, Yü, Code Igniter, Kohana und einige haben grundlegende Authentifizierung, vielleicht ein wenig Berechtigung, aber nichts für jede Anwendung, die feste Code-Sicherheit braucht .

Sind die meisten der oben genannten Schwachstellentypen derzeit nur durch das Schreiben von benutzerdefiniertem Code in diesen Frameworks gesichert?

Das ist irgendwie meine erste Erfahrung mit der Verwendung von Frameworks, alles bis zu diesem Zeitpunkt wurde benutzerdefinierte PHP-Web-Anwendungen. Mein ganzer Gedanke für php-frameworks war, dass es easy zum Schutz vor diesen Schwachstellen sein würde, vorausgesetzt, es ist nicht nativ, warum einen verwenden? Oder gibt es da draußen einen Rahmen, den ich nicht für besser als die oben genannten für starke Web-App-Sicherheit suche? Vielen Dank

+1

Am Ende des Tages liegt es an Ihnen, Ihre App zu sichern. Es gibt nicht wirklich so etwas wie automatische Sicherheit. –

+0

Codeigniter hat Injection, XSS, CSRF eingebaut. Authentifizierung und Autorisierung sind eine Art anwendungsspezifischer Art, also wäre es fast sinnlos, eine Bibliothek zu schreiben, um sie abzudecken, oder? –

+0

Ich weiß es nicht automatisch, aber ein Framework ist da, um zu unterstützen ... – CodeTalk

Antwort

12

Sicherheit kann nicht auf eine Anwendung wie Furnier angewendet werden.Jede Art von Sicherheitsproblem mit in irgendeiner anderen Art und Weise behandelt, und die meisten PHP-Frameworks bieten Tools sicheren Code zu schreiben:

  • Kampf HTML-Injektion/XSS erfordert die Verwendung einer Template-Engine (wie Zweig) das entzieht standardmäßig Werte oder eine komponentengesteuerte Ansatz zum Anzeigen von HTML. No framework wird Ihnen helfen, wenn Sie Menschen erlauben, ihre Dateien hochladen und haben sie von Ihrer eigenen Domäne bedient (Sie müssen eine separate Domäne dafür verwenden);

  • Sie können SQL-Injection vermeiden, indem Sie db-Helfer verwenden, die die Abfrage Parameter umgehen; jeder Rahmen, den Sie erwähnten, stellt jene zur Verfügung (und von natürlich können Sie einfaches PDO verwenden);

  • Sie können CSRF mithilfe sessiongebundener Tokens bekämpfen. Jedes Framework bietet eine Lösung. In jedem Fall müssen Sie jedoch das Framework irgendwie unterstützen (indem Sie jedem Formular ein Token hinzufügen oder indem Sie eine vom Framework bereitgestellte Formularabstraktion verwenden).

Also in gewisser Weise - ja, Sie müssen über Sicherheit denken. Ich denke nicht, dass ein PHP-Framework mehr tun könnte als bisher, es sei denn, es gibt einen Paradigmenwechsel, bei dem wir Anwendungen entwerfen, indem wir bunte Kästen über den Bildschirm ziehen und nicht schmutzige, unsichere Dinge wie HTML oder SQL anfassen. Welche Art von Unterstützung würden Sie erwarten?

+0

Toller Kommentar und Denkanstöße hier fdreger! Vielen Dank! – CodeTalk

+0

Hallo fdreger, wie geht es dir? Ich hoffe es geht dir gut =) kann ich dich bitte kontaktieren? Ich brauche deine Hilfe wirklich, wenn es dir nichts ausmacht, wenn du ein paar PHP-Probleme hast =) sag mir die beste Art, wie du es am liebsten kontaktierst =) –

1

Die wichtigsten Sicherheitslücken, die Sie erwähnen, passieren in verschiedenen und manchmal mehrere Schichten und sind oft abhängig von dem Kontext der, was Sie tun, so viele von ihnen bieten die Einrichtungen zum Schutz gegen diese Dinge, aber Sie müssen davon Gebrauch machen .

Zum Beispiel haben sowohl Symfony (1.x und 2) als auch Zend Framework eine Form-Komponente/Sub-Framework, die CSRF out-of-the-box darstellt. Aber das bedeutet nicht, dass es standardmäßig aktiviert ist (Symfony ist ... erinnern Sie sich nicht, wenn zf's ist oder nicht). Dasselbe gilt für XSS, wenn wir über die Ausgabe-Escaping-Seite in der Ansichtsebene sprechen.

Nun, wenn es um Framework-Präferenz für große Apps geht, mag ich persönlich Symfony 1.x und Symfony2, Zend Framework 1.x (ich werde zf2 nicht erwähnen, weil ich noch nicht einmal damit gespielt habe). Für einfache Dinge mag ich Silex (basierend auf Symfony Components).

8

Ich würde auch CodeIgniter versuchen versuchen.

auch CodeIgniter ist einfach, wenn Sie zu verwenden sind mit einem Rahmen zum ersten Mal und hat eine große Anleitung arbeiten, die wirklich leicht zu verstehen ist.

+0

Wenn ich deine Antwort früher gesehen habe, hätte ich ihr den Scheck gegeben :) Ich denke, ich werde mit codeigniter rollen :) – CodeTalk

+0

Anywho, guter Beitrag! @ – CodeTalk

+0

Hallo Evo, wie geht es dir? Ich hoffe es geht dir gut =) kann ich dich bitte kontaktieren? Ich brauche wirklich deine Hilfe, wenn es dir nichts ausmacht, wenn es um ein paar PHP-Probleme geht =) sag mir die beste Art, wie du kontaktiert werden möchtest =) –