Wie kann ich speichern Sie vertrauliche Daten sicher in eine MySQL-Datenbank?
Mache ich eine Bewerbung für eine Firma, ich arbeite für. Ich habe es zum Schutz vor SQL-injection und einige XSS-Techniken. Mein Hauptproblem ist, halten Sie sensible Informationen geschützt, wie Sozialversicherungsnummer und Adresse, denn das Unternehmen braucht, um 1099 Formen für den Verkäufer Steuern.
Ich weiß nicht, wie zu tun, diesen Teil, aber sollte ich alles verschlüsseln und dann entschlüsseln, wenn er in die MySQL-Datenbank?
- Wenn Sie möchten, es zu sichern, sollte es verschlüsselt in der MySQL-Datenbank, nicht nur während der Fahrt.
- Wenn es entschlüsselt werden kann, indem Sie, Sie in der Regel können entschlüsselt werden, von jemandem, der Zugriff auf Ihre Datenbank. Vielleicht müssen Sie eine professionelle Vermietung?
- Dies ist ein sehr umfassende Frage, Jacob. Können Sie uns etwas mehr? Wenn Sie eher daran interessiert sind, Ende-zu-Ende-Verschlüsselung (warum? um die Vertraulichkeit zu gewährleisten? So dass Ihre Benutzer Vertrauen, dass Sie die übermittlung der Daten an die richtige Person?), dann nehmen Sie die anderen bits. Was ist dein hintergrund in diesem Bereich? Wenn es wenig bis keine gibt, dann lass mich demütig vorschlagen, dass Sie einige offline-Lesen - jede Hilfe, die passen in SO ein Antwort nicht viel helfen. OWASP ist ein guter Ort, um zu starten.
- SQL-injection und XSS-hs geachtet werden von der Anwendung .
- Auch nur zu erwähnen. Verschlüsselte Informationen decryptable Informationen.
- naja, ich wirklich wollen, um die Vertraulichkeit zu gewährleisten und machen es sicherer für unsere Mitarbeiter, ich habe html in der Vergangenheit viel und studiere es seit 15, und gerade vor kurzem wieder in Sie aggressiv, weil mein Freund brauchte das getan. Ich habe gerade angefangen zu lernen, PHP und MySQL viel mehr als ein Hobby Sicht, und gehe in die Schule, auch für diese
- Für mehr Informationen, kommen und schauen Sie unter security.stackexchange.com - wir decken eine Menge von dieser Art der Sache 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine zu vereinfachte Antwort und sollte mit einem Körnchen Salz, wie die meisten Antworten zur Sicherheit:
SSL verwenden überall.
Verwendung eines sicheren Verschlüsselungsschlüssels
Für die Speicherung von verschlüsselten Daten, könntest du eine
BLOB
Feld, und verwenden Sie die MySQL -integrierte Verschlüsselungs-Funktionen. Beispiel:Wenn Sie es vorziehen, die Verschlüsselung/Entschlüsselung in den code der Anwendung, werfen Sie einen Blick auf die PHP Mcrypt Funktionen.
Dies ist keine vollständige Anleitung, aber es ist ein Anfang und besser als nichts zu tun.
Können Sie in der Lage sein, um mehr darüber zu erfahren https://security.stackexchange.com/
SQL-Abfrage mit Schlüssel drin (Wesley Murch schlägt) ist keine gute Idee.
Wenn Sie das tun:
... und die Abfrage wird protokolliert (slowlog für die inst.) Ihre sichere geheime Schlüssel ist gefangen im Klartext, das sollte nie passieren. Eine solche Abfrage mit dem geheimen Schlüssel wäre auch sichtbar, wenn Sie die Abfrage ausführen, wie
SHOW PROCESSLIST
.Nächste problem, wohin mit dem Schlüssel? In der PHP-Datei? Es ist wieder Klartext.
Daten verschlüsseln:
Private - /public-key-Verschlüsselung (http://en.wikipedia.org/wiki/Public-key_cryptography). PHP hat sehr gute Unterstützung für Sie.
Wenn Sie mehr erfahren möchten, können Sie google "user controlled encryption" oder "zero knowledge privacy".
SQL INSERT /XSS:
Den besten Schutz von sicheren Apps. Kein Zweifel. Wenn Sie möchten, um es zu sichern, können Sie für die inst PHP-IDS, um Angriffe zu erkennen:
https://github.com/PHPIDS/PHPIDS
Habe ich sehr gute Erfahrungen mit ihm.
Als stillschweigend in die Kommentare, du stellst dir eine riesige Frage. Sie gehen zu müssen, um der Forschung eine Reihe von separaten Themen:
Wäre es schwer, alle von Ihnen in einer Antwort. Ich würde vorschlagen, das durchführen einer Suche auf dieser Website für die oben genannten Themen.