Datenbank im Internet und allgemeine frage

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von gtrdriver.

    Datenbank im Internet und allgemeine frage

    Hallo zusammen

    Da das mein erster post in diesem Forum ist, möchte ich erstmal ein freundliches "Servus" in die runde werfen.

    Ich habe mich über 10 Jahre mit Access und vba beschäftigt und möchte mich nun zusaetzlich auf vb@net stürzen.

    Vorab eine frage da das von Board zu Board unterschiedlich gehandhabt wird: ist es erlaubt/erwünscht mehrere Themen in einem Thread anzusprechen oder soll für jedes Themengebiet ein eigener Thread aufgemacht werden ?

    Jetzt aber zur frage:

    Ich plane derzeit eine anwendung, welche in geringem Umfang auch daten speichert und wieder abrufen soll. Da das ganze über Netzwerk grenzen hinweg passieren soll habe ich an die Speicherung der daten auf einem im Internet stehenden Server gedacht (diverse Linux Root Server sind vorhanden)

    Nun frage ich mich halt welche Technik hier am sinnvollsten und sichersten ist ?

    Eine direkte Anbindung an z.b. Einen MySQL Server im Internet halte ich für zu gefährlich.

    Ich dachte daher schon an einen Webservice auf dem Root Server der wiederum alles in eine MySQL dB ablegt und auch daraus liest.

    Soweit ich das gesehen habe ist sowas z.b.mit php zu bewerkstelligen. - leider habe ich von php nur sehr wenig Ahnung.

    Asp fällt wegen fehlender Windows serverumgebung aus....

    Mich würde einfach euere Meinung zu diesem Thema interessieren, bevor ich mich in was verrenne und dann feststelle, dass das nix wird...

    Danke schon mal an alle die das bis hierher gelesen haben und noch einen schönen Tag

    Gtr
    Hallo gtrdriver,

    willkommen im forum.
    wenn du die daten online speichern möchtest,
    kannst du MySQL Nutzen, allerdings nicht in direkter verknüpfung mit deine datenbank
    sondern über ein script.
    Du kannst daten speichern / abrufen via PHP und diese entsprechend bearbeiten.
    Allerdings kommt es hierbei darauf an, wie gut du dich mit PHP auskennst ( wegen der sicherheit )
    ganz wichtig ( empfehler ich dir ) wäre dann eine SSL Verschlüsselung.

    das mit PHP ist relativ einfach, du hast hier im Forum auch viele tutorials
    wie du auf deine Datenbank und / Oder auf das Filesystem vom Server zugreifen kannst.

    gruß, annoxoli
    Hallo

    Hmm ich nutze wohl die falschen Keywords zur suche .... Ich hab nur das hier gefunden:
    [VB.NET] Verbindung zu einer MySQL-Datenbank via PHP-Skript

    War das gemeint ?

    Ja das Thema Sicherheit ... Während der Entwicklung noch nicht relevant im betrieb natürlich sehr wichtig....

    Https bedeutet ja verschlüsselte Verbindung zwischen Server undc Client ....

    Kannst du mir kurz anreißen was für https alles notwendig ist ?

    Evtl hast du noch einen anderen link für das Thema MySQL und php ?

    Cu
    Gtr
    Kleines Beispiel, ob ein Account mit dem Namen "XY" vorhanden ist.
    Aufruf der PHP Datei:

    Quellcode

    1. http://www.deinserver.de/dateiname.php?username=%Dein_Nutzer_Name%


    Du kannst dann zB. die Datei mit httprequest aufrufen, oder einen Webbrowser Objekt ( oder Temp objekt )


    PHP-Quellcode

    1. <?php
    2. $dbhost = "DB_IP";
    3. $dbname = "DB_NAME";
    4. $dbuser = "DB_USER";
    5. $dbpass = "DB_PASSWORT";
    6. $acc = $_GET['username']; /*ÜbergabeParameter "username" */
    7. mysql_connect($dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
    8. $verb = mysql_select_db($dbname);
    9. if ($verb)/* Wenn Verbindung vorhanden ist */
    10. {
    11. $sql = "SELECT * FROM user WHERE username ='".$acc."'"; /* SQL Befehl */
    12. $quer = mysql_query($sql) or die(mysql_error());
    13. $num = mysql_num_rows($quer);
    14. if ($num == 0)
    15. {
    16. echo("User does not exist"); /* Nichts gefunden */
    17. }
    18. else
    19. {
    20. echo("User does exist");
    21. /* Do what ever */
    22. }
    23. }
    24. ?>


    Aber achtung:
    Dieser Script ist nicht ganz so sicher.
    es gibt immer bessere mittel und wege, aber ich denke mal zur Übung reicht das.

    für https brauchst du ein Zertifikat für dein Webserver.
    An sich eigentlich nur Optimal, aber WENN du über so einen Weg Wichtige Daten übertragen willst,
    solltest du dies mit SSL Verschlüsselung machen. Da man sonst noch einfacher als normal, die Daten abfangen kann
    und ggf. ein SQL Injection machen kann.

    Zum einsteigen kann ich dir die open Galileo Bücher empfehlen:
    galileocomputing.de/openbook

    Da wirst du bestimmt was finden!

    Gruß, Annoxoli

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Annoxoli“ ()

    gtrdriver schrieb:

    Soweit ich das gesehen habe ist sowas z.b.mit php zu bewerkstelligen

    Wenn ihr vollen Root Zugriff auf ide Linux-Server habt, dann schau mal hier:
    mono-project.com/ASP.NET (Mono = .Net für Linux)
    Dann brauchst du dich nicht mit dem grottigen PHP Kram rumquälen, sondern kannst auf beiden Seiten in einer Sprache arbeiten.

    ist es erlaubt/erwünscht mehrere Themen in einem Thread anzusprechen oder soll für jedes Themengebiet ein eigener Thread aufgemacht werden ?

    Konsens dürfte sein: Was zusammengehört, sollte auch zusammenbleiben. Nur wenn die Teilgebiete zu unterschiedlich sind, oder zu komplex, sollte man es imho besser aufteilen.
    Hallo

    @picoflop

    Das sind 2 VMware Server. Daraus kann ich eigentlich alles installieren was ich brauche....

    Zu deiner Anregung:

    Ich stelle mich jetzt mal ganz dumm an: wie soll das aussehen ?

    Auf der user Seite. Vb.net als Win Programm
    Aus der serverseite ? (asp, ein Dämon, .....) - welches DB System ?

    Als transport Protokoll ? (soap(Webservice)) oder was anderes ?

    @annoxoli:

    Na ja. Üben und praktischer nutzen sind 2 paar Stiefel ....
    Ich wollte eigentlich von Anfang an mit der richtigen Technik arbeiten. Auch für Übungen ...

    Das Thema Ssl Apache und Zertifikate hab ich mir angeschaut das ist ja nicht soooo Wild


    Die Buch Empfehlung ist bekannt ... Ich hab mir dort auch das Vb.net Buch gekauft Dänisch für sehr gut halte ...

    Ich hatte halt gehofft, das es fertig Out of the Box möglich macht solche entfernten dB zugriffe sicher abzuwickeln -:)

    Cu

    Gtr

    gtrdriver schrieb:

    wie soll das aussehen ?

    zb mono-project.com/Web_Services ?

    Datenbank: MySQL, PostgreSQL, Oracle, MSSQL, ... whatever you like

    das es fertig Out of the Box möglich macht solche entfernten dB zugriffe sicher abzuwickeln

    Gibts garantiert. Evtl für Geld. Evtl sowas: servicestack.net/ ? (15 Sekunden Google, keine ahnung obs das passende wäre)

    THEORETISCH ... kannst du auch trotzdem mit MySQL (oder Postgre, halte ich persönlich für "besser") direkt arbeiten. Als ROOT kannst du ja sehr fein definierte Benutzer für den Datenbankzugriff anlegen. Evtl nur ein paar echt kritische Sachen auf PHP etc auslagern und den Rest halt direkt.
    Bei SQLirgendwas könnte man ggf auch mit Triggern und Procedures arbeiten und so zb verhindern, dass ein User vorsätzlich Mist baut.
    Hallo

    Vielen dank für eure Anregungen. Ich habe letzte nach noch viel gelesen und probiert.
    Ein direkter dB connect scheidet aufgrund von Sicherheitsaspekten und wegen eine zu großen aufwandes bei der MySQL Administration aus.

    Dann hab ich mir noch das thema php SQL Script angeschaut - eigentlich nicht schlecht aber auch wieder irgendwie gebastelt.

    Ich werde wohl auf serverseite nen Soap Webservice einsetzen - über welche Sprache jetzt auch immer...

    Notfalls muss ich das halt von jemand machen lassen...

    Cu
    Gtr
    Was hältst denn davon:
    [Beta] MySqlLib 3
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Hallo.

    Danke für den Hinweis ....

    Ich hab das gestern noch gesehen und war erst Feuer und Flamme - weil es eigentlich genau das kann was ich brauche.

    Dann sind mir jedoch erste sicherheitsbedenken gekommenm, weil bei einem Hack der User voll aus der dB ebene ist und das währe der supergau......

    Ich bin ja jetzt wirklich kein Sicherheits Guru aber hier geht es um Kundendaten komplett mit Adressen etc... Da reagiert der Datenschutz schon extrem wenn da was passiert.....

    Ich habe mir jetzt überlegt das über einen Webservice zu mache. Der ohnehin nur die Date von maximal eine. User rausrückt und an die man nur kommt wenn man beim request schon die User in übergibt. (20 Stellringer String aus buchstaben und Zahlen

    Zudem möchte ich die Infos nicht im Klartext in die dB schreiben, sondern vorher mit einem Passwort das der User frei wählen kann Verschlüsseln. Dazu noch https. Mehr fällt mir nicht mehr ein....

    Was haltet hier von diesen Maßnahmen ?

    GTr
    Vllt bin ich nu doof, aber wenn der User nen Passwort frei wählen kann... Und die Datenbank das verarbeiten soll?!
    Dann muss das Passwort erstmal rüber zum Server... Wie? Unverschlüsselt?

    Ich verstehe dein Konzept noch nicht so 100%ig.

    Gibt ja nicht so viele Methoden...
    Wenn der Nutzer das Passwort nur selber kennt zum Ver und Entschlüsseln kann kein anderer Anwender etwas mit den Daten anfangen... Was dann ja soviel heißt wie: Jeder Anwender kann nur seine eigenen Daten bearbeiten.

    Ich denke eigentlich dass die Lib sehr sicher ist, da sie ja keinen direkten Zugriff auf die Datenbank bietet... Sondern eben ein Script bereitstellt, welches dann lokal auf ne MySQL Datenbank zugreift.

    Wobei VB und Sicherheit ja eh immer so ne Sache sind... Da man es ja mehr oder weniger.. einfach dekompilieren kann.

    Ich denke du solltest dir genau überlegen wie du verschlüsselst und wie der Schlüssel ausgetauscht wird usw.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Hallo

    Danke für deinen Post.

    Du hast mich richtig verstanden - jeder User soll nur seine daten sehen lesen und bearbeiten können.
    Daher wird der Schlüssel auch nicht an die dB geschickt und nur lokal gespeichert.

    Selbst wenn dann jemand (ein böser Mensch) Zugriff bekommt und den Schlüssel eines Users sniffen konnte, kann er die daten der anderen user nicht entschlüsseln.

    Cu
    GTr

    Ps. Thema Vb. Sicherheit: ich habe das richtig verstanden, dass es schwierig ist, im compilieren exe Code sensible daten sicher abzulegen ? Ich hab mir schon sowas gedacht...

    PS2: ich möchte mich für die vielen Tippfehler entschuldigen. - ich. Tippe hier momentan viel auf dem iPad und das trägt nicht gerade dazu bei ...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „gtrdriver“ ()