Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbankeintrag ohne Datenbankbenutzer

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datenbankeintrag ohne Datenbankbenutzer

    Moin!
    Ich bastel' derzeit an meiner eigenen Qt-Anwendung herum, vor ein paar Tagen ist mir der Gedanke gekommen, man könnte ja ein Bugreport-Fornular einrichten. So habe ich mir von bplaced den Free-Vertrag geholt (kurz zur Info: max. 2 Datenbanken, insges. 2 Datenbankbenutzer). Das Problem ist aber, dass bplaced keine externen Zugriffe auf Datenbanken erlaubt, zumindest nicht in dieser Version.
    Ich habe mich dann aufgemacht und ein php-Script geschrieben, an welches von der Anwendung PairValues gesendet werden und welche dann anschließend in die Datenbank gestopft werden.

    ​​​​​​
    Code:
     <?php
          $server = "localhost";
          $user = "hierstehtderusername";
    // besitzt nur insert-Rechte
          $password = "diesisteinpasswort";
          $database = "omsi-tools_test";
       
          $con = new mysqli($server, $user, $password, $database);
       
          if ($con->connect_error)
              die("Anmeldung zur Datenbank fehlgeschlagen: ".$con->connect_error);
       
          $content = $_POST["inputText"];
       
          $sql = "INSERT INTO testTable (str) VALUES ('$content')";
       
          if ($con->query($sql) === TRUE)
              echo "Daten erfolgreich in Datenbank eingetragen.<br><br><b>Eingetragene Daten:</b><br>$content";
          else
              echo "<br>Fehler bei Datenübertragung:<br>".$con->error;
       
          $con->close();
      ?>
    ​​​​​Funktioniert auch alles einwandfrei, als ich es via Browser getestet habe. Aus der Anwendung muss es dann auch funktionieren, wenn nicht, muss dort der Fehler liegen.

    Nun zu meiner eigentlichen Frage: Da ich ja nur 2 Datenbankbenutzer habe, welche ich ungern "verschwenden" bzw. die Daten weitergegeben möchte, gibt es eine Möglichkeit, einen Datenbankeintrag ohne diese Datenbankbenutzerdaten anzulegen?

    Ich entschuldige mich, wenn es so einen Thread hier schon gibt, ich habe vorhin aber nicht gefunden.

    Danke schon Mal für jede Ratschläge!

    Viele Grüße,
    Piet​​​


  • #2
    Zitat von Bamp Beitrag anzeigen
    $content = $_POST["inputText"];

    $sql = "INSERT INTO testTable (str) VALUES ('$content')";
    Nein. Mach das nicht. Du hast hier eine massive Sicherheitslücke, du musst den Kontextwechsel unbedingt behandeln!

    Nun zu meiner eigentlichen Frage: Da ich ja nur 2 Datenbankbenutzer habe, welche ich ungern "verschwenden" bzw. die Daten weitergegeben möchte, gibt es eine Möglichkeit, einen Datenbankeintrag ohne diese Datenbankbenutzerdaten anzulegen?
    Nein, wie soll das mit den Berechtigungen funktionieren? Mir ist aber nicht ganz klar warum du meinst nur für das Script einen extra Benutzer zu brauchen - der gleiche Benutzer kann doch auch in anderen Scripten genutzt werden um Daten zu lesen/schreiben …

    Kommentar


    • #3
      Der UserName einer DB soll immer ein Name sein, der für dieser DB im Server zuständig ist, bzw. die DB Struktur im Server pflegen darf/soll/muss. Die Daten DB ist dafür da, dass sie Objekt einer Anwendung. Der Name eins Benutzers ist ein Objekt der Anwendung. Daraus folgt: Immer trennen! Siehe auch objektorientiertes Design OOD. Man könnte auch sagen: eine Classe SERVER <-> Benutzer ist eine ander class als Anwendung<-> Benutzer.

      Kommentar


      • #4
        Nun zu meiner eigentlichen Frage: Da ich ja nur 2 Datenbankbenutzer habe, welche ich ungern "verschwenden" bzw. die Daten weitergegeben möchte, gibt es eine Möglichkeit, einen Datenbankeintrag ohne diese Datenbankbenutzerdaten anzulegen?
        Klares Nein. Ohne Benutzer geht gar nix...

        Es wird aber auch nichts verschwendet, denn ein (Datenbank) Benutzer darf viele Connections gleichzeitig machen. Eine Connection wird nur für die Scriptlaufzeit benutzt und anschliessend wieder freigegeben.
        Problematisch wird es, wenn viele (Internet) Benutzer gleichzeitig auf deiner Seite sind, oder deine SQL queries zu lange brauchen. Wenn alle connections belegt sind, passiert das: "SQL Error 1040: Too Many Connection"
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          ob es immer free hosting sein muss ?
          bei blaped jedenfalls
          https://www.bplaced.net/
          scheint kein SSL dabei zu sein.
          auch doof, sich gedanke um die sicherheit zu machen, und der nachbar im ice liest mal so eben deine logindaten mit ..
          ist der ftp zugriffwenigsten ftps oder so ?


          aber um auf deine sorgen zurückzukommen, speichere die daten halt anders, bspw in einem grossen XML file

          Kommentar

          Lädt...
          X