Datenbankeinführung

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Datenbankeinführung

      [FONT="Franklin Gothic Medium"][COLOR="Indigo"][SIZE="3"]Hai <3

      Ich habe gelesen dass durch SQL Einführung in meinem Code Sachen kaputt gehen können. Ich habe gelesen man muss dass mit mysql_real_escape_string machen. Was real damit zu tun hat verstehe ich zwar nicht, aber egal.
      Ich habe also jetzt diesen code:

      $var = mysql_real_escape_string($_GET["eindeutigebenutzeridentifikationsnummer"]);
      $query = 'SELECT * FROM benutzertabelle WHERE idvombenutzerdergesuchtwird = '.$var;
      mysql_query($query);

      Aber man kann immernoch eine SQL Einführung machen! was mache ich falsch??
      :(

      Hilde
      [/SIZE][/COLOR][/FONT]
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • [FONT="Comic Sans MS"][COLOR="DeepSkyBlue"][SIZE="2"]Hildegard, ich glaub du könntest mal ernst bleiben.
      Wenn du auch nurn Funken Ahnung hast, sollteste doch wisse, dass mysql_real_escape... escaped und somit schonmal keine SQl Injection möglich ist, solange die Daten nicht noch irgendwo wieder vom escaping befreit werden.
      Was real damit zu tun hat, hab ich auch keine Ahnung, wobei das real nicht fürs Kaufhaus steht, also hab ich doch etwas Ahnung, ist aber auch egal

      Bleib einfach mal ernst, so blöde Posts brauch keiner[/SIZE][/COLOR][/FONT]
    • [FONT="Franklin Gothic Medium"][COLOR="Indigo"][SIZE="3"]Dass ich hier gerne spamme okay.. Aber die Antworten in diesem Thread sind schon episch, hat jemand von euch einen Funken Intellekt?
      Scheinbar nicht...
      Man braucht bei einer SQL Injection *spast* nur ' im zu injizierenden Querystring, wenn man damit die ursprüngliche Query aufbrechen muss.
      Nachdem die ursprüngliche Query in diesem Fall ihre Werte aber nicht in einfachen Anführungszeichen eingeschlossen hat braucht man nichts aufzubrechen...
      Testet dass doch lokal einmal, und nehmt als Eingabewert 2 OR 1=1
      => Alle werden aufgelistet, und kein Anführungszeichen dass von mysql_real_escape_string getötet werden könnte..

      $var = '2 OR 1=1';
      => SELECT * FROM benutzertabelle WHERE idvombenutzerdergesuchtwird = 2 OR 1=1

      Idioten, dass sogar die Mods hier keinen Funken Ahnung haben aber mich runtermachen?! Und warum postet ihr hier wenn ihr nicht den Hauch einer Ahnung habt? Geht in euere Ecke und erstellt peinliche p-server ihr primaten... Typisch mcore!

      ps: tut mir leid, ich habe das tourette syndrom //EDIT: auf Drängen von Well habe ich doch kein Tourette Syndrom.
      [/SIZE][/COLOR][/FONT]
    • [FONT="Comic Sans MS"][COLOR="DeepSkyBlue"][SIZE="2"]Ich verstehem deine Ausführung nich ganz zu 100%
      Und Ahnung muss man ja nich von allem haben ;)
      Jedenfalls, wenn du '2 OR 1=1' als GET übergeben würdest, müsste es normal escaped werden.
      Anders siehts ohne ' ' aus
      Allerdings sollte man in so nem Fall auch dran denken, sein Query so zu gestalten, dass es sowas nich geben kann.

      Ausserdem, ich sagte nur, dass du nich immer dumme posts machen sollst, dein letzter Post hier war mal sinnvoller und ohne unnötige Ironie.[/SIZE][/COLOR][/FONT]
    • Hallo Hildegard96,

      du solltest kürzere - und vor allem englische - Variablenbezeichner wählen. Anstelle von eindeutigebenutzeridentifikationsnummer könntest du bspw. "UID" wählen.

      Ich empfehle zudem CamelCase: eindeutigeBenutzerIdentifikationsNummer
      Dadurch werden deine Variablenbezeichner lesbarer.

      Mit freundlichen Grüßen.
    • [FONT="Comic Sans MS"][COLOR="DeepSkyBlue"][SIZE="2"]Dazu sagte ich ja, dass man eben drauf achten sollte, sein Query abzusichern auch für diesen Fall
      Wie das auch immer gehn sollte, ist ja jedem selber überlassen, es dürfte schon helfen, alles in `` einzuschließen.
      Und ich sagte auch, dass der Spaß nur ohne ' ' richtig funktioniert.
      BTW, wenn du MySQLi und Prepared Statements verwendest, gibts schonmal etwas weniger Probleme, aber 100% sicher ists auch nich.[/SIZE][/COLOR][/FONT]
    • Ich kann die Aussage von internetfreak nur unterschreiben, ich bin eh' der Meinung man sollte bei größeren Projekten mit einer DB Klasse arbeiten, welche Schlüsselwörter unterbindet.

      Nun aber habe ich auch Kritik, liebe Hildegard.
      Aus welchem Grund sollte jemand seine UserID via POST bzw. GET übergeben, höchstens den USERNAMEN welcher im Endeffekt wieder im Varchar ist und du für eine Injection mehr oder weniger ein Anführungszeichen brauchst.
    • Also ganz ehrlich der einzigste der hier keine Ahnung hat bist wohl du, ich weiß mit 100%iger Sicherheit das sich hier keiner vor die Beweißen muss. Und wenn du deine Antworten auf deine Fragen schon kennst, und meinst hier Leute testen zumüssen. Dann geh damit in andere Foren und beleidige hier nicht Leute die weit aus mehr aufm kasten haben als du je haben wirst.

      Desweiteren wird kein halbwegs gescheiter Programmierer solch einen String an den Query übergeben. Das ist ersten total sinnlos und zweitens einfach nur hohl.

      Aber wenn du so codest dann freut es mich für dich das du dein Ding durchziehst. Ich wünsche dir viel Erfolg bei deinen weiteren sinnlosen Threads und ich hoffe das keiner mehr so Blöd ist dir zu antworten.