Ich muss mit einigen vertraulichen Daten in meiner Anwendung umgehen, z. B. Passwörter, Kreditkarteninformationen usw. Was sind mögliche Sicherheitsrisiken, die ich haben könnte und wie kann ich sie vermeiden?Sicherheitsrisiko beim Speichern von privaten Daten
Antwort
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.
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.
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.
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.
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.
- 1. Sicherheitsrisiko beim Aktivieren von MSDTC
- 2. Speichern von privaten E-Mail-Adressen in meiner Datenbank
- 3. gpgme: Auswählen eines privaten Schlüssels beim Signieren von Daten
- 4. Android - Sicherheit beim Speichern von Daten
- 5. Fehler beim Speichern von Daten in SQLite
- 6. BitPay API-Benachrichtigungen: Sicherheitsrisiko?
- 7. Pickle Sicherheitsrisiko für den persönlichen Gebrauch
- 8. Mungo keine Daten ohne Fehler beim Speichern
- 9. Sicherheitsrisiko der Offenlegung von PHP-Dateien Name
- 10. Unerwartete Daten beim Speichern auf eloquent/Laravel
- 11. Speichern von Daten iphone
- 12. Python Speichern von Daten
- 13. Vuejs Speichern von Daten
- 14. Powershell: Speichern von Daten
- 15. SQL Sicherheit beim Speichern von Daten Wordpress integrierten Funktionen mit
- 16. Fehler beim Speichern von Daten für CSV mit R
- 17. DbContext.SaveChanges Methode Null Reference Exception beim Speichern von Daten werfen
- 18. Fehler beim Speichern von Daten auf Firebase (Web)
- 19. Seg-Fehler beim Speichern von Daten mit boost :: serialization
- 20. Null Reference Excepion beim Speichern von Daten auf Subsonic 3
- 21. Fehler beim Speichern von Daten in der Datenbank
- 22. Fehler beim Speichern von Docker-Images im AWS S3-Bucket aus der privaten Docker-Registrierung
- 23. Speichern Sie Ihre privaten Projekte - wo?
- 24. Daten von jQuery/EXT JS speichern
- 25. Laufzeitfehler beim Speichern von NewWorkbook
- 26. Fehlerbehandlung beim Speichern von kPasteboardTypeFileURLPromise
- 27. Elemente verschwinden beim Speichern
- 28. Speichern von Daten in Elementen
- 29. Speichern von Daten aller Registerkarten
- 30. Speichern von Daten Ausgabe, SharedPreferences
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