wie sicher sind denn DB-Queries

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

  • wie sicher sind denn DB-Queries

    wie sicher sind eigentlich db-abfragen und wie kann man diese manipulieren ?

    Ich frage deshalb, da mir ein bekannter mal nebenbei erzählt hat, dass man z.B. den Query " Drop Database " irgendwie per script oder in einem TExtfeld mitschicken kann ?


    wie sicher sind datenbankabfragen ?
    <Life>Traumprojekt-Die Design-Community</life>

  • #2
    schau mal hier: http://www.oreilly.de/artikel/php_sicherheit.html

    Kommentar


    • #3
      $db->query($get_variable);
      Nicht Tatsachen,
      sondern Meinungen über Tatsachen
      bestimmen das Handeln der Menschen.
      (Epiktet (50-138 n.Chr.)

      Kommentar


      • #4
        danke an euch

        mich würden vor allem praktische Tips interessieren, wie ihr ein Query "bombensicher" macht ?
        <Life>Traumprojekt-Die Design-Community</life>

        Kommentar


        • #5
          Na vorher die Variablen durchchecken.
          "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

          Kommentar


          • #6
            Du kannst auch dafür sorgen, daß niemand solche Daten eingeben kann. Also durch Pulldownmenüs, Radiobuttons oder durch Checkboxes. Erst in einem Textfield kann man so etwas wie "drop table" einbauen. Dann mußt du halt noch den String nach dem Wort "drop" durchsuchen oder halt noch nach ein paar anderen KEYwords. Dann bist du schonmal ziemlich sicher, daß keiner irgendwelchen Mist in deine Textfelder geschrieben hat. Aber sowas wie "Drop" und "delete" oder "update" sollte auf jeden Fall in den Textfeldern verboten sein!!!
            visit www.krischanlp.de
            and www.mathe-informatik.de

            Kommentar


            • #7
              Du kannst auch dafür sorgen, daß niemand solche Daten eingeben kann. Also durch Pulldownmenüs, Radiobuttons oder durch Checkboxes. Erst in einem Textfield kann man so etwas wie "drop table" einbauen.
              in dem fall musst du dich dann auf die daten verlassen, die dir gesendet werden.
              solange der aufruf also über die originale webseite erfolgt, und dort die auswahl der möglichen werte per dropdown gemacht wurde, kein problem.

              aber ich kann dir ja mit entsprechendem programm jede art von GET- oder POST-request an deinen webserver schicken, wenn gewünscht auch noch mit gefaketem referer, damit es so aussieht als käme die anfrage über die webseite.

              und dann kann dein dropdown von mir aus nur die werte 'ungefaehrlich1', 'ungefaehrlich2' und 'ungefaehrlich3' enthalten, völlig egal, weil ich stattdessen die entsprechende variable in meinem request mit 'drop table xy' belege.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Mit mysql_escape_string hat sich das erledigt.
                mein Sport: mein Frühstück: meine Arbeit:

                Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                Kommentar


                • #9
                  was bewirkt dieses $db->query($get_variable);

                  $PHP resource 4ever$

                  Kommentar


                  • #10
                    Das eine Query die vom Anwender kommt ausgeführt wird. Was natürlich extrem schlimm ausgehen könnte.
                    "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

                    Kommentar


                    • #11
                      mysql

                      Also wenn du mysql hast und da die RootRechte hast bzw. Rechte einen neuen User anzulegen, dann solltest du mal folgendes eingeben in mysql:

                      GRANT SELECT
                      ON deintable.*
                      TO neueruser@"%domain.de"
                      IDENTIFIED BY 'newpass';

                      Damit erstellst du einen neuen User hier neueruser mit dem PW newpass.
                      Dieser darf ausschließlich Select Anfragen schicken - also keine Drop Table etc!!!! und er kommt von der Domain.de Adresse. Anfragen von anderen Adressen werden dann einfach ignoriert.
                      Auf diese Weise kannst du deine Webseite relativ sicher machen, da du immer dann, wenn du Formularfelder hast (z.b. Suchfelder) diese keinen Schaden mehr anrichten können. Wenn du Daten eintragen willst, kannst du ja noch Insert erlauben. Du kannst alle einzelnen Bereiche selbst festlegen und evt sogar untersch. User für die versch. Sicherheitszonen erstellen. Damit bist du dann schonmal ziemlich sicher gegen Löschatacken etc.! Bei Insert kannst du dann "nur" noch zugespammt werden. Aber das sollte man ja mit einer IP/Cookiesperre regeln können.
                      visit www.krischanlp.de
                      and www.mathe-informatik.de

                      Kommentar

                      Lädt...
                      X