Normalerweise befinden sich Anwendungen und ihre Konfigurationen auf demselben Computer und wenn jemand diesen Rechner hackt, kann er auf die Konfigurationsdatei zugreifen und auf die Datenbank zugreifen (über DB Benutzername und Passwort, die sich in dieser Konfigurationsdatei befinden) . Was passiert, wenn wir die Informationen der Konfigurationsdatei hashen und dann diese Datei anstelle einer reinen Textdatei verwenden? Gibt es eine bessere Idee? Nehmen wir an, ich möchte keine Cloud infra verwenden, es gibt nur eine einzige Maschine.Informationen zur Konfigurationsdatei hash/encrypt
Antwort
Hashfunktionen sind Einwegfunktionen. Sobald Sie eine Konfigurationsdatei mit einem Hashwert versehen haben, können Sie sie nicht mehr für die Anwendung aufheben, um sie zu verarbeiten. Verschlüsselung ist wahrscheinlich das, was die meisten Leute benutzen, aber selbst dann kann sie immer noch anfällig für Reverse Engineering sein.
Hashing ist ein one-way process - am häufigsten verwendet, um zu überprüfen, dass Informationen nicht manipuliert worden sind. Das Hashing Ihrer Konfigurationsdatei liefert Ihnen eine im Wesentlichen bedeutungslose Zeichenkette, die Sie nicht zum Aufbau einer Datenbankverbindung verwenden können.
Sie können natürlich die Konfigurationsdatei verschlüsseln, aber dann haben Sie das gleiche Problem - ein Angreifer, der theoretisch Zugriff auf die Webanwendung hat, kann den Entschlüsselungsschlüssel abrufen und herausfinden, wie die Konfiguration entschlüsselt werden kann; Sie können es sogar zur Laufzeit herausfinden, indem sie den Speicher des Serverprozesses überprüfen.
Der wichtigste Punkt ist, dass ein Angreifer, der Zugang zu Ihrem Webserver hat, fast unmöglich zu stoppen ist - sie können vermutlich auf den gesamten Verkehr auf Ihrem Server zugreifen und sie können alle Dateien auf dem Server lesen zumindest diejenigen, die der Benutzer der Webanwendung lesen kann), können sie möglicherweise beliebigen Code auf dem Server ausführen. Der Schutz vor dieser Eventualität ist nicht die beste Nutzung Ihrer Zeit - es ist, als ob Sie in Schlösser investieren würden, wenn die Haustür unsicher ist. Viel besser, um die Haustür zu reparieren.
Die beste Lösung für dieses Problem ist es, die Leute, die die von Ihnen verwendete Websprache/Framework erstellen, zu lösen. Sie geben die Sprache/das Framework nicht an, lesen jedoch die Sicherheitsrichtlinien für Ihr Toolset und implementieren die Empfehlungen. Siehe auch die OWASP Richtlinien.
- 1. Informationen zur Georeferenzierung
- 2. Informationen zur freien Speicherplatzgröße
- 3. Informationen zur Veröffentlichung einer Website
- 4. Nginx im SSL-Modus keine Informationen in der Konfigurationsdatei
- 5. Konfigurationsdatei
- 6. TeamSpeak 3 erhalten Informationen zur Website
- 7. Zuverlässige Informationen zur x86-String-Befehlsleistung?
- 8. Falsche Informationen zur Festplattennutzung mit Docker
- 9. Airflow: Pass Informationen zur nächsten Aufgabe (Sensor)
- 10. Ist eine Sprungantwort genug Informationen zur Dekonvolution?
- 11. Laravel - Hinzufügen von Informationen zur Beziehung Ausgabe
- 12. Informationen zur GetTempPath-Funktion in Win32-API
- 13. Wie speichere ich Informationen zur Webseite?
- 14. Fehlende Informationen zur Exportkompatibilität - iTunes Connect/TestFlight
- 15. Zusätzliche Informationen zur Dygraph-Legende hinzufügen?
- 16. Wo finde ich umfassende Informationen zur Bildbearbeitungsbibliothek?
- 17. Verwenden eines Treeview zur Anzeige von Informationen
- 18. Skript zur Ausgabe von Informationen über Fremdschlüssel
- 19. Konfigurationsdatei testen
- 20. kriegsspezifische Konfigurationsdatei
- 21. Wie Konfigurationsdatei im XML-Format zur normalen Conf-Datei
- 22. Legen Sie den Pfad zur globalen Konfigurationsdatei in Cordova fest?
- 23. Visual Studio-Projekt und Artikelvorlage automatisch etwas zur Konfigurationsdatei hinzufügen
- 24. Create Konfigurationsdatei zur Laufzeit in Java exportiert WAR
- 25. Initialisieren von Objekten mithilfe der Konfigurationsdatei zur Laufzeit
- 26. Wie konfiguriere ich die Logback-Konfigurationsdatei zur Laufzeit?
- 27. Wie aktualisiert AssemblyBinding Abschnitt in der Konfigurationsdatei zur Laufzeit?
- 28. Hinzufügen einer neuen Zeile zur Konfigurationsdatei mit Bash-Skript
- 29. Fehler beim Hinzufügen von Alias zur Apache2-Konfigurationsdatei
- 30. kann keine Paket-Konfigurationsdatei zur Verfügung gestellt von „Qt5Svg“