2009-05-16 13 views

Antwort

2
  • Bewahren Sie keine Kreditkarteninformationen (in einigen Ländern, könnten Sie, indem Sie so das Gesetz zu brechen oder zumindest Foul einer kommerziellen Vereinbarung fallen)

  • Sie sagen nicht, wo Ihre sensiblen Daten werden gespeichert, aber es ist der übliche Ansatz. Es gibt zwei Formen, symmetrisch und asymmetrisch. Symmetrisch bedeutet, dass Sie denselben Schlüssel zum Verschlüsseln und Entschlüsseln verwenden. Asymmetrisch besteht aus einem öffentlichen/privaten Schlüsselpaar.

  • Passwörter: Speichere nur einen gesalzenen Hash (d. H. Nicht reversibel) deiner Passwörter und vergleiche ihn mit einem ähnlich gesalzenen Hash eines eingegebenen Passworts.

0

Ich würde geneigt sein, irgendeine Form von reversibler Verschlüsselung auf den Informationen, die er für gespeichert werden ist, so etwas wie:

$card = myEncryptionFunction($input); 

ein wenig mehr Informationen über die Art der Anwendung allerdings nicht schaden würde.

0

Ich würde reversible Verschlüsselung für die Datenbankdaten verwenden. Stellen Sie sicher, dass diese Daten auch nicht in Protokolldateien eindringen, sondern leiten Sie abgeleitete Informationen ab. Überlegen Sie, wie Sie mit verschiedenen Umgebungen umgehen können - normalerweise möchten Sie nicht Produktionsdaten in Ihren Testumgebungen verwenden. Selbst wenn Sie in Erwägung ziehen, Produktionsdaten in Testsysteme zu kopieren, sollten Sie wahrscheinlich gefälschte Daten für die empfindlichen Teile erzeugen.

1

Beachten Sie, dass Sie Kreditkarteninformationen in keiner Form oder Form auf einem Webserver speichern sollten.

Bit von Informationen über diese in einer Web-Umgebung zu tun, die mein Hintergrund ist:

Wenn eine Website (oder eine Anwendung) Kartendaten speichern muss, sollte es mit dem PCI-DSS-konform (Zahlungskarten Industry Data Sicherheitsstandard). Dies setzt unter anderem voraus, dass die Daten verschlüsselt auf einem separaten Server gespeichert werden, der nicht öffentlich zugänglich ist (IE: hostet die Site nicht) und eine separate Firewall zwischen ihr und dem Webserver hat. Strafen für das Nichteinhalten sind im Falle betrügerischer Aktivitäten nach einer Sicherheitsverletzung potentiell sehr groß und können dazu führen, dass sie die Zusammenarbeit mit Ihnen einstellen - es behält sich ziemlich das Recht vor, die Verluste aus dem Betrug an Sie zu verrechnen (von meinem Interpretation als nicht juristische Person)

Mehr zu ihm hier: https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml

Offensichtlich kann dies teuer sein im Vergleich zu Shared-Hosting, wie Sie sofort zwei Server benötigen und eine Last von Gang zu vernetzen. Deshalb machen Leute das nicht oft.

+0

Gute Information! Die Anwendung ist möglicherweise nicht webbasiert, aber Informationen sind trotzdem nützlich. Eine Alternative besteht natürlich darin, auf eine sichere Zahlungsplattform von Drittanbietern (Bank ...) umzuleiten. – PhiLho

0

Es wurde bereits gesagt, dass Sie CC nicht speziell CVV2 Informationen in Ihrer Datenbank speichern sollten, vermeiden Sie wo möglich.

Wenn Sie CC + CVV2 speichern, sollten Sie eine asymmetrische Verschlüsselung in Betracht ziehen und Ihren privaten Schlüssel auf einem anderen Server speichern. Andernfalls kann ein Angreifer, der auf die Daten 99% zugreifen kann, auf den Schlüssel zugreifen und die gesamte Verschlüsselung wäre sinnlos.

Passwörter sollten als Einweg-Hash gespeichert werden.

Nachdem diese alles, was Sie benötigen, um sicherzustellen, dass Ihre Anwendung vor Schwachstellen sicher ist wie SQL Injeciton, Remotecodeausführung usw.

Sie auch nicht vergessen, wenn ein Angreifer nicht vorherige Daten lesen kann sie eine Pflanze kann Hintertür für die nächsten Daten.

Verwandte Themen