Frage

Ich werde a implementieren PHP/mySQL Einrichtung zum Speichern von Kreditkarteninformationen.

Wie es scheint AES_ENCRYPT/AES_DECRYPT ist der richtige Weg,

aber in einem Punkt bin ich immer noch verwirrt:

Wie halte ich den Verschlüsselungsschlüssel sicher?

Es scheint eine große Sicherheitslücke zu sein, es fest in meine PHP-Skripte einzubinden (die auf demselben Server wie die Datenbank laufen).

Was ist hier die „Best Practice“-Lösung?

War es hilfreich?

Lösung

Sie sollten lange und gründlich überlegen, ob man wirklich die CC # halten müssen. Wenn Sie nicht über einen großen Grund haben, nicht! Jede zweite Woche Sie über einige Unternehmen hören kompromittiert und CC # 's gestohlen. Alle diese Unternehmen einen fatalen Fehler - sie hielten zu viele Informationen. Halten Sie die CC #, bis die Transaktion genehmigt. Danach löscht es.

Was den Server zu sichern, die beste Vorgehensweise ist es, die Hardware und verwendet den internen System-Buchse MySQL zu sichern, und stellen Sie sicher, dass alle Netzwerkzugriff auf den MySQL-Server zu blockieren. Stellen Sie sicher, Sie verwenden sowohl Ihre Systemberechtigungen und die MySQL-Berechtigungen so wenig Zugang zu ermöglichen, je nach Bedarf. Für einige Skripte, könnten Sie write-only Authentifizierung in Betracht ziehen. Es gibt wirklich keine Verschlüsselungsmethode, die narrensicher sein wird (wie Sie immer entschlüsseln müssen, und somit müssen die Schlüssel speichern). Dies ist nicht zu sagen, Sie sollten nicht -. Sie Ihren Schlüssel an einem Ort gespeichert werden können, und wenn Sie Kompromittierung des Systems erfassen können Sie die Datei zerstören und die Daten unbrauchbar machen

Andere Tipps

MySQL, gibt es sechs einfache Schritte, die Sie tun können, um Ihre sensiblen Daten zu sichern.

Schritt 1: Entfernen Platzhalter in den Grant-Tabellen

Schritt 2: Sie erfordern die Verwendung von sicheren Passwörtern

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

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

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

Schritt 5: Schalten Sie Zugriff

Schritt 6: aktiv überwachen, um das MySQL-Zugriffsprotokoll

Sicherheits-Tools

Ich bin damit einverstanden, aber nicht die cc, wenn Sie nicht brauchen. Aber wenn Sie wirklich zu haben, stellen Sie sicher, dass die Datei, die sie haben auf dem Netz nicht erreichbar ist. Sie können eine binäre schreiben, die den Schlüssel zurückgeben würde. Auf diese Weise ist es nicht im Klartext gespeichert werden. Aber wenn Ihr Server Kompromiss ist es ist immer noch leicht zu bekommen.

die Sicherheit, die Sie hängt von Ihrer Anwendung benötigen. zum Beispiel, wenn die einzige Zeit, die cc # verwendet werden soll, wenn der Benutzer in (dünne Online-Shop Typ-Szenario) angemeldet ist, dann können Sie das cc # mit dem Hash des Klartext-Passwort des Benutzers verschlüsseln, eine per- Benutzer Salz und ein dediziertes cc # Salz. diesen Wert nicht dauerhaft gespeichert werden.

da Sie diesen Wert nicht speichern, die nur Zeit, die Sie dieser Wert bekommen kann, ist, wenn der Benutzer sein Passwort eingibt eingeloggt sein. So stellen Sie sicher, dass Sie gute Session Ablauf und Garbage Collection Politik an der richtigen Stelle.

, wenn diese Situation für Sie nicht gilt, beschreiben Sie Ihre Situation im Detail, so dass wir eine angemessenere Antwort geben können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top