SQL-Injections abfangen

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

  • #31
    lass deine Beleidigungen goth sonst sehn wir uns bald woanders....

    Wir haben eben genau darüber geredet, ob es was hiflt. Ich hab niemals geleugnet, dass es nicht die beste Wahl ist, aber mal ehrlich: Das Problem SQL-Injections packt man, wenn man intelligent ist sowieso ganz woanders. Aber ihr seid ja versierte Coder, die Ratschläge anderer nicht brauchen...

    Ich hab es nicht nötig in diesem Kreise mich mit euch zu streiten.

    @meikol: Prinzipiell gar nicht schlecht, aber warum zerstörst du erst deine Request-Variablen um sie dann später manuell wieder aufzubauen?!
    Desweiteren bin ich gegen die Verwendung von $_REQUEST sondern dafür explizit $_GET und $_POST zu benutzen, da man weiß, dass die Daten aus der gewünschten Quelle kommen...

    mfg afogel
    Zuletzt geändert von afogel; 30.03.2004, 21:15.
    Content Management at it's best:
    http://www.anyon.de

    Kommentar


    • #32
      Original geschrieben von meikel
      Das verhindert keine "bösen Bytes" im Textfenster (außer ", ' und %).

      Die Variable muß schlicht und einfach auf ihren Inhalt geprüft werden, ob der dem Erwarteten entspricht, bevor sie (auch im einem SQL String) weiter verwurstet wird. Wenn die Variable maskiert wurde, dürfen sich darin keine Zeichen < 32 befinden. Ausnahme: \t, \r und \n, wenn es sich um ein Textarea handelt.

      Wenn Du Dir schon mal die GET Strings angeguckt hast, mit denen zB. via Gallery der Webserver geknackt werden kann, wirst Du einsehen, daß es Augenwischerei ist, sich ausschließlich auf addslashes () u/omysql_escape_string zu verlassen.
      dann poste doch ein Lösungsvorschlag.

      Ich bin allerdings der Meinung das es besser ist, als sich auf die Serverconfig zu verlassen.

      Und warum $_request und nicht gleich $_GET, $_POST etc. benutzen oder weist du nie wo du was herbekommst.
      mfg
      marc75

      <Platz für anderes>

      Kommentar


      • #33
        Original geschrieben von marc75
        dann poste doch ein Lösungsvorschlag.
        Das muß jeder selbst entscheiden.

        EDIT:
        Script befindet sich noch in Bearbeitung und wird daher aus dem Text erst mal gelöscht.
        Zuletzt geändert von meikel; 31.03.2004, 09:21.

        Kommentar


        • #34
          Original geschrieben von meikel
          Das muß jeder selbst entscheiden.

          PHP-Code:
          # $_REQUEST mit $_SET oder $_POST setzen. 

          unset ($_REQUEST); 

          $_REQUEST = ($_SERVER['REQUEST_METHOD'] == 'GET'
              ? 
          $_GET 
              
          $_POST

          # magic_quotes_gpc 

          define ('MQ', (ini_get('magic_quotes_gpc')) ? true false); 

          if (! 
          MQ

              foreach (
          $_REQUEST as $key => $val$_REQUEST[$key] = addslashes($val); 

          http://www.php-resource.de/forum/sho...threadid=14600
          mfg
          marc75

          <Platz für anderes>

          Kommentar


          • #35
            http://www.php-resource.de/forum/sho...threadid=31538











            Original geschrieben von meikel
            PHP-Code:
            $_REQUEST = ($_SERVER['REQUEST_METHOD'] == 'GET'
                ? 
            $_GET 
                
            $_POST
            mhm. was machst du dann hiermit?

            Code:
            <form action="index.php?id=1&sid=2">
            <input type="hidden" name="idx" value="2">
            <input type="text" name="name" value="abc">
            <input type="submit" name="" value="send">
            </form>
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #36
              Original geschrieben von Abraxax

              mhm. was machst du dann hiermit?
              Das ist noch Baustelle. Ich brauche sozusagen ein Variablenset, mit dem ich entweder Formulare oder Links bauen kann. Ich bin zu faul, bei jeder Funktion zu überlegen, ob ich die Variable mode jetzt in POST oder in GET suchen muß.

              btw: ich korrigiere den Beitrag, um hier keine Halbheiten zu hinterlassen.

              Kommentar


              • #37
                dennoch ist deine herangehensweise ein wenig merkwürdig....
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #38
                  Original geschrieben von Abraxax
                  dennoch ist deine herangehensweise ein wenig merkwürdig....
                  Ich arbeite gern in Funktionen und Klassen mit Variablensets. Da die Variablen im "Hauptprogramm" nicht automatisch superglobal sind, verwende ich aus diesem Grunde gern $_REQUEST.

                  Hier zwei Beispiele, wie man damit umgehen kann:
                  http://test.php-help.info/mysql-1/
                  http://test.php-help.info/email-1/

                  EDIT:
                  Zusatz: auch für das Füttern von Templates eignen sich assoziative Arrays hervorragend.
                  Zuletzt geändert von meikel; 31.03.2004, 10:34.

                  Kommentar


                  • #39
                    Ich frage mich gerade, welche Zeichen zu einer SQL injection führen könnten, die addslashes nicht abfängt? Der Abfrageausdruck kann ja schließlich meine Quotes nicht verlassen. Oder was bedenke ich nicht?

                    Grüssle

                    Kommentar


                    • #40
                      Original geschrieben von flolle
                      [B]Ich frage mich gerade, welche Zeichen zu einer SQL injection führen könnten, die addslashes nicht abfängt? Der Abfrageausdruck kann ja schließlich meine Quotes nicht verlassen. Oder was bedenke ich nicht?
                      Einiges, wenn Du den vermeintlichen String *nicht* auf ungültige Zeichen überprüfst. Es gibt auch Strings, die fangen so an:
                      Code:
                      ELF              €€4   _      4    (
                       	          € €                   ‘
                       ‘                          U‰åƒìlWVSE_}_¾À€
                      ü¹   ó¥f¥¤E_‰Eœ‹]œÿӍeˆ[^_‰ì]Ͷ    ¿
                      usw...
                      Zuletzt geändert von meikel; 31.03.2004, 21:59.

                      Kommentar


                      • #41
                        Ehrlich gesagt habe ich keine Ahnung was diese unsinnige Diskussion hier soll ... mysql_escape_string() respektive mysql_real_escape_string() wird sogar dazu verwendet Binäre Daten in die MySQL zu schreiben ... bei keinem Format ist die Möglichkeit größer das irgendetwas "passieren" könnte ... aber auch damit kommt mysql_escape_string() wie gesagt sehr gut klar ... aus welchem Grunde also die absurde Idee einer möglichen SQL-Injection ... ?!

                        Beide Funktionen sind letztlich Wrapper für die MySQL-Client-Library-Originale ... vielleicht macht Ihr euch einfach mal die Mühe dort (in der MySQL Doku) die Beschreibungen zu lesen!

                        Ein Programmierer der sich auf (von Ihm definierte) Settings der "php.ini" verläßt ist schlichtweg ein fauler (und dummer) Programmierer ... mehr bleibt in diesem Falle wohl kaum zu sagen ... !

                        Mit solch einem Stuß disqualifizert Ihr euch letztlich selber ... vielleicht solltet Ihr hier gerade mal eure Realnamen veröffentlichen ... nicht das ich einen von euch versehentlich mal einstelle ... das könnte teuer werden ... !
                        carpe noctem

                        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                        Kommentar


                        • #42
                          Original geschrieben von goth
                          Beide Funktionen sind letztlich Wrapper für die MySQL-Client-Library-Originale ...
                          Na und? Adelt das die beiden Funktionen bis in alle Ewigkeiten?

                          nicht das ich einen von euch versehentlich mal einstelle ... das könnte teuer werden ... !
                          OffTopic:
                          Keine Angst: ich persönlich kann mir die Auftraggeber noch aussuchen.
                          Zuletzt geändert von meikel; 01.04.2004, 13:48.

                          Kommentar


                          • #43
                            Original geschrieben von meikel
                            Na und? Adelt das die beiden Funktionen bis in alle Ewigkeiten?
                            Sicher nicht ... allerdings ist der Schrott den du hier rumerzählst auch nicht gerade blaublütig ... !

                            Nichts ist für alle Zeiten sicher ... und gerade aus diesem grunde sollte der Entwickler selbst definierte Zustände schaffen ... aber wer garantiert dir das substr() oder strpos() für alle Zeiten vollkommen korrekt arbeiten ... mysql_(real_)escape_string() ist der Standardweg um eine Zeichenkette für die Verarbeitung durch MySQL vorzubereiten ... und das ändert sich auch durch Dein geseiere nicht ... wenn Du so schlau wär'st wie Du hier glauben machen willst dann hättest Du's nicht nötig Dich durch solch einen Dünnpfiff hier wichtig zu machen ... !
                            Original geschrieben von meikel
                            OffTopic:
                            Keine Angst: ich persönlich kann mir die Auftraggeber noch aussuchen.
                            Ja ... weil die den Schwachsinn den du hier verzapfst sicher noch nicht mitbekommen haben ... !

                            Im übrigen ... als Auftragnehmer gerne ... da kann ich Dich nachher nach Strich und Faden auf Schadensersatz verklagen ... als Angestellten will ich Dich nicht ... !
                            carpe noctem

                            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                            Kommentar


                            • #44
                              Original geschrieben von goth
                              Sicher nicht ...
                              OffTopic:
                              Ach...?
                              [... ein paar Gewöhnlichkeiten wohlwollend überlesen ...]


                              Im übrigen ... als Auftragnehmer gerne ...
                              OffTopic:
                              Lern lesen. Ich schrieb, daß ich die Auswahl treffe.
                              <eod>

                              Kommentar


                              • #45
                                Du bist so armselig ... in Wirklichkeit würdest Du heulend auf Knien vor mir liegen wenn ich Dich erhören würde ... *ROTFL* ... scheiße bist Du schlecht ... !

                                Mach ruhig weiter ... Du belustigst mich du armseliges Geschöpf ... !
                                carpe noctem

                                [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                                [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                                Kommentar

                                Lädt...
                                X