2009-04-03 20 views
2

Ich baue eine App, die einige unserer Kunden Details speichern wird, Dinge wie Benutzernamen/Passwörter, Informationen, die wir uns merken und bewahren müssen.Der beste Weg, um Daten zu sichern PHP + MYSQL

Was ist die beste Methode, um diese Informationen sicher zu speichern?

Antwort

2

Solch eine offene Frage mit nicht sehr viel Detail zu gehen. Ich würde vorschlagen, Chris Shifletts exzellentes "Essential PHP Security" zu lesen, bevor Sie weiter gehen. Es ist kurz, auf den Punkt und sehr praktisch.

Es gibt auch eine angemessene Menge der verfügbaren Beratung von der Website des Buches auch bei http://phpsecurity.org/

0

Soweit Passwörter gehen sollten Sie einen Hash des Passworts speichern. Wenn Sie den Benutzer authentifizieren, hashen Sie das eingegebene Kennwort und vergleichen das Ergebnis mit dem, was Sie gespeichert haben. Auf diese Weise speichern Sie nicht das eigentliche Passwort.

1

ein PHP-Framework für Sicherheit Mit

Wenn Sie PHP Sicherheitseinstellungen erhalten möchten schnell und ohne eine Last von Forschung, Ein PHP-Framework wäre eine gute Idee.

Ich bin ein Fan von CodeIgniter aber andere Optionen gehören CakePHP und Zend.

Wenn Sie ein Framework für die Sicherheit verwenden, erhalten Sie sofort eine erprobte Methode, es kann jedoch etwas Zeit und Aufwand für das Erlernen des Frameworks erforderlich sein.

Insgesamt list of PHP frameworks can be found on wikipedia.

+3

Die Verwendung eines Frameworks verhindert nicht, dass Sie unsichere Anwendungen erstellen. Sie müssen über bewährte Sicherheitsmethoden wissen. Frameworks ersetzen keine sichere Codierung. Sich nicht über Sicherheit zu informieren, weil du ein Framework verwendest, ist eine sehr ignorante Art, dein eigenes Sicherheitsloch zu graben. – Jacco

+0

Fair genug. Ein Rahmen ist keine Wunderwaffe. Die integrierten Sicherheitsklassen, die Ihre Daten bereinigen und Ihnen helfen können, viele XSS-Exploits zu vermeiden, können jedoch für jemanden mit wenig Erfahrung sehr nützlich sein. –

+0

Sie können Ihnen sicherlich helfen. – Jacco

0

Ziemlich einfach tatsächlich. Richten Sie eine schnelle MySQL-Datenbank und eine Benutzertabelle ein. Speichern Sie in dieser Benutzertabelle die Benutzernamen in einer Spalte und eine Hash-Version des Kennworts in einer anderen Spalte.

Als zusätzliche Sicherheit, ich möchte eine zufällige 8-stellige Zeichenfolge generieren und speichern Sie diese auch in jeder Zeile - ich nenne diese Spalte den "Keycode". Wenn sich der Benutzer mit einem korrekten Benutzernamen/Passwort anmeldet, speichere ich seine Authentifizierung in Sitzungsvariablen genauso wie den passenden "Keycode".

Auf diese Weise kann die Sitzungsauthentifizierung nicht nur nach dem richtigen Benutzernamen/Kennwort suchen, sondern die Datenbank schnell abfragen und prüfen, ob der in der Sitzungsvariablen gespeicherte "Schlüsselcode" mit dem Schlüsselcode in der Zeile übereinstimmt .

Es funktioniert gut, weil nicht einmal der Benutzer ihren Schlüsselcode kennt.

Verwandte Themen