kostenloser Webspace werbefrei: lima-city


SQL Injection über IP?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    paddy-herrmy

    Kostenloser Webspace von paddy-herrmy

    paddy-herrmy hat kostenlosen Webspace.

    Hallo Limas ;-)

    Heut mal ne etwas doofere Frage von mir..
    (als ob ich auch Fragen stellen würd, die nicht doof sind :lol:)
    Zur Frage an sich:

    Ist es möglich eine SQL-Injection über die eigene IP durchzuführen?
    Also ich meine das so:

    mein Script speichert/verwendet die IP des Besuchers und verarbeitet diesse unter anderem mit Mysql.
    Kann nun ein potentieller Angreifer seine eigene IP so "verfälschen" dass er damit quasi eine SQL Injection o.A. durführen kann?
    ist es übehaupt möglich mit irgend einer "fiktifen" IP zu surfen? Also dass quasi die IP als "OR 1=1" erkannt wird?

    Und wenn ja, kann er (der potentielle Anreifer) dem System auch die IP von anderen Usern, z.B. die des Administrators "vortäuschen"?

    Danke für eure Hilfe.
    Gruss Paddy

    Beitrag zuletzt geändert: 16.9.2012 9:02:16 von paddy-herrmy
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. paddy-herrmy schrieb:
    ist es übehaupt möglich mit irgend einer "fiktifen" IP zu surfen? Also dass quasi die IP als "OR 1=1" erkannt wird?

    Und wenn ja, kann er (der potentielle Anreifer) dem System auch die IP von anderen Usern, z.B. die des Administrators "vortäuschen"?
    Theoretisch schon, das ganze nennt sich dann IP-Spoofing. Praktisch ist es jedoch so, dass sowas oft von Routern oder ISP's unterbunden wird. Zudem kommt, dass das ganze dann eine Einweg-Kommunikation wäre. ( Denn der Server sendet die Pakete an die vorgetäuschte IP, anstelle des eigentlichen Senders. ) Aber für eine Injection reicht das ja prinzipiell aus.
  4. g****e

    Ja und nein. Eigentlich aber nein. Die IP wird meineswissens aus dem IP Container, welcher um dein TCP Packet geschnürt ist ausgelesen, und diese IP hat nur eine bestimmte Bit-Breite (4Byte im IPv4). Also geht es nicht, eine IP und ein anhängsel gleichzeitig darein zu schreiben. Ich glaube, nichtmal über die Forwarded-For header kann ein solches eingeschleust werden, denn auch hier werden nur die ersten 4Byte gelsen (was eigentlich auch schon schädlich sein könnte, mit pech).
    An sich würd ich sowas auch validieren, besser ists. Aber mir ist nicht bekannt, dass man hier eine Injection drüber laufen lassen kann.

    Liebe Grüße
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Das kann doch normal gar nicht möglich sein, da die IP wenn du sie abfragst vom Server in eine Zahl mit Punkten dazwischen verwandelt wird, und somit kann dort niemals OR oder ein anderer Text stehen...
  6. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    Solange die Server-Software nicht Fehlerhaft ist, sollte das unmöglich sein.

    Beim Auswerten von X-Forwarded-For musst du aufpassen, da dieser vom Client gesendet werden und somit auch manipuliert werden kann.
  7. Die eigentliche Frage wurde ja bereits gut beantwortet. Ich möchte noch eine kleine Ergänzung bringen: Benutze am besten PDO mit Prepared statements. Dann können generell keine SQL Injections mehr passieren.
  8. Autor dieses Themas

    paddy-herrmy

    Kostenloser Webspace von paddy-herrmy

    paddy-herrmy hat kostenlosen Webspace.

    Danke für die zahlreichen Antworten.

    bladehunter schrieb:
    Die eigentliche Frage wurde ja bereits gut beantwortet. Ich möchte noch eine kleine Ergänzung bringen: Benutze am besten PDO mit Prepared statements. Dann können generell keine SQL Injections mehr passieren.


    Hmm ich benutze momentan mysql_real_escape_string reicht das nicht?
    uund natürlich auch andere Filter wie z.B. whitelist bei benutzerangaben, wie id nur zahlen zulassen etc.

    Gruss paddy
  9. bladehunter schrieb:
    Benutze am besten PDO mit Prepared statements. Dann können generell keine SQL Injections mehr passieren.

    Da jedoch Prepared Statements nicht immer (zB wenn du einen Query nur einmal ausführst) das beste sind, gibt es in PDO noch diesen schönen Modifier: PDO::ATTR_EMULATE_PREPARES
    Damit werden dann Prepared Statements nur emuliert und der Nachteil durch den unnötigen Overhead bei zB nur einem INSERT ist weg, aber die Vorteile bleiben. :wink:

    paddy-herrmy schrieb:
    Hmm ich benutze momentan mysql_real_escape_string reicht das nicht?
    uund natürlich auch andere Filter wie z.B. whitelist bei benutzerangaben, wie id nur zahlen zulassen etc.

    Ja das sollte eigentlich reichen.
    Aber vielleicht weiß bladehunter ja noch was. :smile:
  10. paddy-herrmy schrieb:
    Hmm ich benutze momentan mysql_real_escape_string reicht das nicht?

    Dann musst du aber darauf achten, dass du das überall verwendest. Und es ist ein recht langer Funktionsname.
    Da sollte man lieber auf Nummer Sicher gehen und einfach immer PDO benutzen. Dann übersieht man auch nichts.


    uund natürlich auch andere Filter wie z.B. whitelist bei benutzerangaben, wie id nur zahlen zulassen etc.

    Viel zu viel Aufwand meiner Ansicht nach. Nimm einfach PDO und damit hast du alles abgedeckt.

    philippkern schrieb:
    Da jedoch Prepared Statements nicht immer (zB wenn du einen Query nur einmal ausführst) das beste sind, gibt es in PDO noch diesen schönen Modifier: PDO::ATTR_EMULATE_PREPARES
    Damit werden dann Prepared Statements nur emuliert und der Nachteil durch den unnötigen Overhead bei zB nur einem INSERT ist weg, aber die Vorteile bleiben. :wink:

    Den Modifier habe ich bisher nicht gekannt. Und man kann den gerne nutzen, wenn man die Performance optimieren will.

    Aber selbst wenn es den Modifier nicht geben würde, würde es sich lohnen PDO zu benutzen, weil es die Sicherheit einer Webanwendung mit wenig Aufwand verbessert. Wenn dafür etwas mehr Rechenpower erforderlich ist, ist das ein guter Kompromiss.


    Beitrag zuletzt geändert: 16.9.2012 19:14:24 von bladehunter
  11. Autor dieses Themas

    paddy-herrmy

    Kostenloser Webspace von paddy-herrmy

    paddy-herrmy hat kostenlosen Webspace.

    Alles klar, ich danke für die Zahreichen antworten..
    Ich denke schaden kann es trotzdem nicht, wenn ich als IP nur Zahlen und Punkte durchgehen lasse ;-)

    bladehunter schrieb:
    paddy-herrmy schrieb:
    Hmm ich benutze momentan mysql_real_escape_string reicht das nicht?

    Dann musst du aber darauf achten, dass du das überall verwendest. Und es ist ein recht langer Funktionsname.
    Da sollte man lieber auf Nummer Sicher gehen und einfach immer PDO benutzen. Dann übersieht man auch nichts.


    Alles klar, ich werde mich da mal reinlesen, und schauen wie ichs umsetzen werde, Danke für den Tipp ;-)
    Gruss Paddel
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!