2008-09-11 7 views
9

Ich werde eine PHP/mySQL Einrichtung implementieren, um Kreditkarteninformationen zu speichern.Wie kann ich eine mySQL-Datenbank sichern?

Es scheint, wie AES_ENCRYPT/AES_DECRYPT ist der Weg zu gehen,

aber ich bin immer noch verwirrt auf einen Punkt:

Wie halte ich den Verschlüsselungsschlüssel sicher?

Hardwiring es in meine PHP-Skripts (die auf dem gleichen Server wie die db leben) scheint wie eine große Sicherheitslücke.

Was ist die "Best Practice" -Lösung hier?

Antwort

15

Sie sollten lange darüber nachdenken, ob Sie wirklich die CC# behalten müssen. Wenn Sie keinen guten Grund haben, nicht! Jede zweite Woche erfahren Sie, dass ein Unternehmen kompromittiert wurde und CC# gestohlen wurde. All diese Unternehmen haben einen fatalen Fehler gemacht - sie haben zu viele Informationen behalten. Bewahren Sie die CC# auf, bis die Transaktion gelöscht wird. Danach löschen Sie es.

Für die Sicherung des Servers ist es am besten, die Hardware zu sichern und den internen System-Socket für MySQL zu verwenden und sicherzustellen, dass der Netzwerkzugriff auf den MySQL-Server blockiert wird. Stellen Sie sicher, dass Sie sowohl Ihre Systemberechtigungen als auch die MySQL-Berechtigungen verwenden, um so wenig Zugriff wie nötig zuzulassen. Bei einigen Skripten können Sie eine schreibgeschützte Authentifizierung in Betracht ziehen. Es gibt wirklich keine Verschlüsselungsmethode, die narrensicher ist (da Sie immer entschlüsseln müssen und daher den Schlüssel speichern müssen). Das soll nicht heißen, dass Sie es nicht sollten - Sie können Ihren Schlüssel an einem Ort speichern und wenn Sie eine Systemkompromittierung feststellen, können Sie die Datei zerstören und die Daten unbrauchbar machen.

+0

Bingo - speichern Sie keine Kreditkartendaten, wenn überhaupt möglich. Verarbeiten und verwerfen Sie und lassen Sie einen Service wie PayPal mit wiederkehrenden Transaktionen umgehen. – ceejayoz

+2

In Fällen, in denen eine Rückbuchung erfolgt (dh der CC-Besitzer behauptet, dass die Transaktion falsch war), sollten Sie die letzten vier Ziffern der CC-Nummer beibehalten. – BlaM

+3

Vielleicht auch die ersten 6 Ziffern aus statistischen Gründen. Die ersten 6 identifizieren die ausstellende Bank, so dass Sie sehen können, ob es betrügerische Transaktionen von einer Bank gibt, so dass Sie in schlechten Fällen mehrere Kreditkarten blockieren können. – BlaM

0

Ich stimme zu, aber nicht die CC, wenn Sie nicht auch brauchen. Aber wenn Sie wirklich auch haben, stellen Sie sicher, dass die Datei, die es hat, nicht im Internet zugänglich ist. Sie können eine Binärdatei schreiben, die den Schlüssel zurückgibt. Auf diese Weise wird es nicht im Klartext gespeichert. Aber wenn Ihr Server kompromittiert ist, ist es immer noch leicht zu bekommen.

0

Die Sicherheit, die Sie benötigen, hängt von Ihrer Anwendung ab. Wenn zum Beispiel die cC# nur verwendet wird, wenn der Benutzer angemeldet ist (dünnes Online-Store-Typ-Szenario), können Sie die cC# mit dem Hash-Wert des Klartext-Passworts des Benutzers verschlüsseln. Benutzersalz und ein dedizierter cC# -Salz. Speichern Sie diesen Wert nicht dauerhaft.

Da Sie diesen Wert nicht speichern, können Sie diesen Wert nur erhalten, wenn der Benutzer sein Kennwort für die Anmeldung eingibt. Stellen Sie lediglich sicher, dass Sie gute Ablauf- und Garbage-Collection-Richtlinien haben.

Wenn diese Situation nicht auf Sie zutrifft, beschreiben Sie bitte Ihre Situation genauer, damit wir eine angemessenere Antwort geben können.

3

MySQL, es gibt sechs einfache Schritte, mit denen Sie Ihre vertraulichen Daten sichern können.

Schritt 1: Entfernen Platzhalter in den Grant-Tabellen

Schritt 2: Erfordern die Verwendung von sicheren Passwörtern

Hinweis: Verwenden Sie die MySQL „--secure-Auth“ Option die Verwendung von älteren zu verhindern, weniger sichere MySQL-Passwort-Formate.

Schritt 3: Überprüfen Sie die Berechtigungen der Konfigurationsdateien

Schritt 4: Verschlüsseln Client-Server-Übertragungen

Schritt 5: Schalten Sie Zugriff

Schritt 6: Aktiv gegen die Zugriff MySQL Protokoll überwachen

Sicherheitstools

Verwandte Themen