Sicherster Weg eine Verbindung aufzubauen

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von KlyX.

    "Interessant wäre es jetzt natürlich, jede Verbindung nochmal abzusichern (z.B. mit einem bei jeder Verbindung generiertem Hash-Wer oder so)."

    Nee, nutze einfach HTTPS. Entweder mit selbst-signierten Zertifikaten oder von LetsEncrypt. Da haben sich sehr viele schlaue Leute bereits Gedanken gemacht, wie man sowas sicher bekommt.
    So, also Abfrage in PHP erstellen und JSON-Datei erstellen ist soweit erledigt und mit wenigen Code-Zeilen gemacht.
    Ich hab mir nochmal überlegt, wie man die Abfragen so sicher wie möglich machen könnte, ohne es extrem kompliziert zu machen.

    Abgesehen von der "Jeder Query liegt im PHP-File und es werden nur Argumente übertragen" klingt es dann für mich eigentlich am Einfachsten, wenn es eine simple Website gibt, wo die benötigten SQL-Statements eingetragen werden können. Diese werden dann in eigenen Tabellen in einer Datenbank abgelegt (geht das überhaupt sinnvoll? SQL-Statements in eine SQL-Tabelle abzulegen?)

    Alternative wäre, bei jedem Programmstart die benötigten SQL-Statements (ohne Argumente) über ein weiteres PHP-Script weiterzugeben, welches dann die benötigte PHP-Datei erstellt und deren Dateinamen an VB zurückgibt. Bei Programmende wird die PHP-Datei dann wieder gelöscht. Aber ob das sinnvoll ist? Auch hier ist wieder das Problem, dass einmalig SQL-Statements (wenn auch nicht in kompletter Form) übertragen werden...

    Hmmm hmmm.
    Was denkst du @Manawyrm
    Chris' Weblog - Mein Blog rund um Vieles :D
    Verkünzelst du dich da nicht?

    Vielleicht solltest du dich ein wenig mit den Grundlagen des API design vertraut machen.

    Hier
    codeofaninja.com/2017/02/create-simple-rest-api-in-php.html
    ein relativ einfaches Beispiel.

    Und hier noch
    github.com/mevdschee/php-crud-api/blob/master/README.md
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
    Ich vermute, du hast Recht...
    REST API klingt in der Tat sinnvoll und sauber.
    Muss mich da wohl wirklich einlesen. Wollte eigentlich nicht allzu viel mit PHP machen - aber das bedingt es nun dann wohl, mich mit der REST zu beschäftigen :D
    Chris' Weblog - Mein Blog rund um Vieles :D
    Was würde denn gegen ein mit SSL abgesichertes Client-Server-Modell über TCP sprechen? Hierbei kann der Server dann die ganzen Eingaben noch einmal auf Plausibilität prüfen oder gar erst Verbindungen zulassen, die sich mit einem "ClientKey" und dazugehöriger HW-ID authentifizieren. Der Server würde dann direkt auf dem selben Rechner wie der MySQL-Server sitzen, sodass letzterer nur von localhost erreichbar sein muss.
    You should live for that what you belive. - Drag-Drop Beschreibung
    @MrTrebron ich hab mir jetzt vor allem mal die 1-File-API angeschaut (finde ich am Nettesten :)) und mal mit dem Swagger Editor getestet.
    Das Ding ist ziemlich geil :)
    Eine Frage dazu: wenn ich das richtig verstehe, kann ich zwar innerhalb einer Tabelle über die READ-Funktionalität ziemlich alles abfragen was ich will inkl. mehrerer Filter.
    Dann gibt es die Relations-Funktion, mit denen ich verschiedene Tabellen verknüpfen kann. Das geht aber nur (wenn ich das richtig verstanden habe), wenn ich bereits in der Datenbank die Verknüpfung der Tabellen mit Foreign Keys erstellt habe.

    Stellt sich mir nun die Frage:
    - mache ich alle nötigen Verknüpfungen tatsächlich schon Datenbank-seitig (mal sehen, ob das geht und überhaupt sinnvoll sein wird für alles was ich brauche/will) und hole mir alle Daten über die API dann ins VB oder aber:
    - importiere ich alle benötigten Tabellen über ein einfaches auflisten in VB und werte sie dann aus (müsste ja gehen, wenn ich die Daten in ein DataTable importiere und von dort auswerte oder?)?

    Welche Option ist denn im Endeffekt sinnvoller?
    Mir ist natürlich klar, dass wenn ich Änderungen in der DB vornehme, ich dann die entsprechende Tabelle wieder abrufen muss.

    @manawyrn: klar, SSL-Zertifikat macht mehr Sinn, hast recht :) da ich auf dem Server sowieso Let's Encrypt verwende, ich dass dann nahe liegend :)
    Chris' Weblog - Mein Blog rund um Vieles :D