AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Parameter übergeben

Ein Thema von Yheeky · begonnen am 7. Apr 2008 · letzter Beitrag vom 9. Apr 2008
 
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#28

Re: [PHP] Parameter übergeben

  Alt 9. Apr 2008, 12:22
Zitat von Yheeky:
Dass ich die Eingaben nicht verhindern kann ist klar, aber es geht mir ja genau um dein 3.: ich will, dass "Müll" nicht weiter erkannt und weiter verarbeitet wird. Inwiefern da htmlspecialchars helfen soll, habe ich leider nicht verstanden.
Falsch. Betrachte alles was ankommt, als Muell. Dann sortierst du es (stripslashes falls magic_quotes an sind, htmlspecialchars, trim), und dann ueberlegst du ob du es verwenden willst und ob die Qualitaet passt (z.B. ob der Benutzername gewisse Kriterien erfuellt). Und merke: alles was du kriegst, sind Strings. Entweder du typisierst die Variablen selbst (z.B. intval() oder (int)) oder du musst jede Variable, die in ein Query kommt mit Quotes umgeben und mysql_real_escape_string drueberlaufen lassen. Bei Strings ist es naemlich straeflich, das nicht zu tun.

Zum Code sag ich nur, OUCH. Nicht nur Spaces sind blanks, da gibts noch viel mehr. Wie gesagt, mit mysql_real_escape_string() escapen.
Folgender Query-String:
Code:
get.php?username=';DROP%09TABLE%09Users;--
Kommt durch deine Pruefung durch, aber macht trotzdem scheisse. Und was machst du wenn der Benutzer ein Leerzeichen in seinem Passwort haben will? Oder wenn er einen Titel fuer einen Blog-Eintrag oder ne Support-Mail in ein Formular eingibt? Versuch nicht zu verhindern, dass ein Benutzer SQL-Queries mitschickt. Verhindere, dass diese zur Ausfuehrung kommen, indem du Quotes usw. unschaedlich machst (siehe obige Funktion)

Was hat htmlspecialchars() damit zu tun? Stell dir sowas vor:
Code:
$username = $_GET['username'];
// Abfrage
if ($not_exists)
{
  echo "Benutzer $username existiert nicht";
}
Und jetzt stell dir fuer $username diese Eingabe vor:
Code:
<script>alert(document.cookie);</script>
Da ist kein Leerzeichen drin, und glaub mir, man kann viel mehr Scheiss mit XSS-Luecken anstellen als nur ein Cookie auszugeben.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz