Ich habe nicht viel Erfahrung mit Desktop-Anwendungen, aber wenn ich eine Client-Server-Desktop-App erstellen müsste, würde der Datenzugriff über einen Webservice erfolgen. Ich glaube, dass der Datenzugriff über einen Webservice Sicherheit bietet - ich muss den Benutzernamen und das Kennwort des Datenbankservers usw. nicht übergeben.
Wie haben Datenbankanwendungen dies vor Webservices getan? Wurden alle wichtigen Datenbankinformationen in die Installation der Desktop-App übernommen? Wenn ja, wie haben Programmierer den Sicherheitsaspekt verwaltet? Oder haben Programmierer etwas Ähnliches wie Webservices verwendet?
programming-practices
security
Heult Hagrid
quelle
quelle
Antworten:
Je nachdem, was Sie einen Webdienst nennen.
Vor WSDL und REST gab es noch HTTP, sodass im Grunde alles, was Sie jetzt tun können, auch vorher erledigt werden konnte.
Es gab einen Mangel an Einheitlichkeit (weshalb WSDL und REST in erster Linie erstellt wurden), aber es bot das gleiche Maß an Datenvertraulichkeit und -sicherheit, von dem Sie sprechen.
Sie können auch die Verwendung von HTTP vermeiden: Sie können Ihr eigenes Protokoll erstellen und einen benutzerdefinierten Server und benutzerdefinierte Clients verwenden, die einen Socket für diesen Server öffnen und die benötigten Daten abrufen (oder die Daten veröffentlichen). Hier verlieren Sie alle Standardisierungsvorteile von HTTP, aber Sie geben den Clients erneut keinen Zugriff auf die Datenbank.
quelle
Ah, damals, als wir Stöcke und Steine hatten.
Vor dem Internet hatten wir eine sogenannte "Client / Server" -Architektur und lokale Netzwerke. Wenn Sie nicht versucht haben, eine Verbindung mit einem mehrere Meilen entfernten Server herzustellen, haben diese Netzwerke einwandfrei funktioniert, um fast alles zu erreichen. Sie können sogar Laufwerksbuchstaben herstellen und Verbindungen zu Dateiservern wie einer Remote-Festplatte verwenden, wenn Sie möchten. Wenn Sie waren einige Meilen entfernt, könnten Sie ein Wide Area Network nutzen im Wesentlichen die gleiche Sache zu tun, wenn auch mit einer geringeren Geschwindigkeit und zu höheren Kosten.
Die billige Möglichkeit, aus der Ferne zu sprechen, bestand darin, Informationen mit Geräten, die als Modems bezeichnet werden, über Telefonleitungen zu übertragen. Wenn Sie etwas einrichten möchten, bei dem zwei Computer über Computeranwendungen miteinander gesprochen haben, haben Sie dies genauso getan wie heute: durch Einrichten ein Kommunikationsprotokoll. Daran ist überhaupt nichts Magisches; Beide Seiten müssen sich nur darauf einigen, was alle Bytes bedeuten.
Schon in den frühen Phasen des Internets gab es Möglichkeiten für Maschinen, über das Internet zu kommunizieren. Web Services sind nur die neueste Version der Woche.
quelle
Nur um zuerst einige Konzepte zu klären ...
Ich denke, Sie bringen die Konzepte von (1) TLS ( Transport Layer Security) und (2) Zugriffskontrollen in der obigen Anweisung zusammen ... Ob ein Benutzername und ein Kennwort angegeben werden müssen oder nicht, hängt nicht davon ab, ob es sich um einen Webdienst handelt bereitgestellt durch (1) einen verschlüsselten Kanal und (2) Authentifizierung (z. B. einen API-Schlüssel).
Für einen extrem schlecht geschriebenen Webdienst müssen möglicherweise noch Kennwörter im Klartext über HTTP gesendet werden. Ein schlecht geschriebener kann dies über HTTPS tun (sicher, aber einmal gebrochen, z. B. durch einen Man-in-the-Middle- Angriff, der für Missbrauch offen ist). Ein besser geschriebener Webdienst sollte die Datenbankkonnektivität intern basierend auf anderen Eingaben, z. B. Sitzungs-IDs, verarbeiten, nachdem die Authentifizierungs- und Berechtigungskontrollen überprüft wurden.
Zurück zum Hauptpunkt: @ marcus 'Kommentar zu Ihrer Frage ist es im Wesentlichen. Sicherheitsaspekte werden nicht anders behandelt als "moderne" Technologien, und dies umfasst Implementierungsfragen wie:
X.X.X.X
mit einem Benutzernamen und einem Kennwort herzustellen und dann die Abfrage auszuführenINSERT INTO user_address ...
?Für mehr Informationen:
quelle