Sanitize Query String in PHP

8

Ich habe eine Webseite mit einer Abfragezeichenfolge.

In PHP habe ich:

%Vor%

Muss ich den Querystring bereinigen?
Wenn ja, wie kann ich sanieren und was sind mögliche Angriffe, wenn ich das nicht tue?

    
David19801 02.12.2011, 20:09
quelle

4 Antworten

6

Sie sollten htmlspecialchars($query, ENT_QUOTES) verwenden, um XSS-Angriffe zu verhindern.

%Vor%

Aber trotzdem sollten Sie alle Parameter auflisten, da ein intelligenter Angreifer eine Abfrage erstellen und versuchen könnte, CSRF angreifen.

    
Mārtiņš Briedis 02.12.2011, 20:15
quelle
12

Wenn Sie PHP & gt; = 5.2.0 verwenden, verwenden Sie filter_input oder filter_input_array .

Nehmen wir an, Ihre URL und die Abfragezeichenfolge sind etwas wie http://example.com/?liquor=gin&mixer=tonic&garnish=lime .

Um zu filtern, würden Sie Folgendes tun:

%Vor%     
webinista 13.05.2013 18:06
quelle
0

In diesem Fall sollten Sie die urlencode-Funktion verwenden.

htmlspecialchars / htmlentities sind geeigneter, wenn Sie beispielsweise den Wert des Abfrageparams im Titel des Links ausgeben, aber nicht in den Attributen href / src.

    
Boris Belenski 02.12.2011 20:33
quelle
-3

Sie können die Abfrage auf verschiedene Arten bereinigen, aber das ist nicht der richtige Ort dafür. Selbst wenn Sie eine sichere Abfrage per GET senden, kann jemand die Abfrage in der Adressleiste ändern oder Manipulationsdaten verwenden. Sie müssen auf index.php bereinigen (oder wo auch immer Sie die Daten verarbeiten). Wenn Sie MySQL verwenden, müssen Sie diesen Weg bereinigen:

%Vor%     
phobia82 02.12.2011 20:26
quelle

Tags und Links