versuch13
Erfahrenes Mitglied
Hi. Was muss man beachten wenn man GET Parameter weiter verarbeitet? Muss ich da mit rawurldecode o.ä. ran? Ich weiß einfach nicht was man da an Zeichen alles einschleusen könnte. Vielleicht hat dazu jemand Informationen, vor was muss man sich in acht nehmen?
Um auch ein kleines Beispiel zu geben. Eine Tagcloud. Im groben sieht das etwa so aus:
Die Tags werden ausgegeben
Im optimal Fall entsteht dann eine URL die wie folgt aussieht
domain.de/tags/dasVorhandeneTag/
die URL wird auseinander genommen und ich habe dann das Tag in einer
Variable:
$tag = "dasVorhandeneTag"
dieses wird auf der Seite ausgegeben und auch in MySQL Abfragen genutzt.
Vor einer MySQL Anfrage nutze ich mysql_real_escape_string(), vor der Ausgabe
mit echo nutze ich htmlentities()
Jetzt kann natürlicher jemand der böses will, eventuell einen Aufruf wie
domain.de/tags/böseZeichen/
aufrufen. Ich kenn mich da nicht ausreichend aus um zu wissen welchem Möglichkeiten
einem Angreifer zur Verfügung stehen daher weiß ich auch nicht wie es einem Angriff vorbeugen kann. Also die Frage, wie schütze ich mich ausreichend gegen Angriffe über GET Parameter ab?
Bei meiner Recherche bei aus der ich leider nicht richtig schlau wurde, habe ich teilweise auch gelesen man solle urlencode Funktionen
auf Formulardaten anwenden? Und in Fällen wo Daten per xmlhttprequest versendet werden? Wann genau muss man es nun einsetzen?
Vielen Dank. Grüße
Um auch ein kleines Beispiel zu geben. Eine Tagcloud. Im groben sieht das etwa so aus:
Die Tags werden ausgegeben
PHP:
echo '<a href="/tags/'. rawurlencode(strip_tags($_GET['tag'])) .'/">'.$_GET['$tag].'</a>';
Im optimal Fall entsteht dann eine URL die wie folgt aussieht
domain.de/tags/dasVorhandeneTag/
die URL wird auseinander genommen und ich habe dann das Tag in einer
Variable:
$tag = "dasVorhandeneTag"
dieses wird auf der Seite ausgegeben und auch in MySQL Abfragen genutzt.
Vor einer MySQL Anfrage nutze ich mysql_real_escape_string(), vor der Ausgabe
mit echo nutze ich htmlentities()
Jetzt kann natürlicher jemand der böses will, eventuell einen Aufruf wie
domain.de/tags/böseZeichen/
aufrufen. Ich kenn mich da nicht ausreichend aus um zu wissen welchem Möglichkeiten
einem Angreifer zur Verfügung stehen daher weiß ich auch nicht wie es einem Angriff vorbeugen kann. Also die Frage, wie schütze ich mich ausreichend gegen Angriffe über GET Parameter ab?
Bei meiner Recherche bei aus der ich leider nicht richtig schlau wurde, habe ich teilweise auch gelesen man solle urlencode Funktionen
auf Formulardaten anwenden? Und in Fällen wo Daten per xmlhttprequest versendet werden? Wann genau muss man es nun einsetzen?
Vielen Dank. Grüße
Zuletzt bearbeitet: