Sicherheit · Frage 3 von 12
Ein URL-Parameter uid enthält den Wert „5 OR 1=1“. Was liefert (int)$uid in PHP 8?
1 Antwort ist richtig. Einfach
Lösung anzeigen
Lösung
- B 5
Erklärung
Der Cast (int) wandelt einen String in eine Ganzzahl um und liest dabei die führenden Ziffern: Aus „5 OR 1=1“ wird 5, der angehängte SQL-Teil fällt weg. Beginnt der Text nicht mit einer Zahl, etwa „abc“, ergibt der Cast 0. Deshalb ist (int) eine einfache und wirksame Bereinigung (Sanitizing) für IDs, bevor sie weiterverarbeitet werden. Ein TypeError entsteht erst bei strikt typisierten Funktionsparametern, nicht beim expliziten Cast. Trotzdem gilt: In SQL-Abfragen übergibt man auch Zahlen als Named Parameter, z. B. mit Connection::PARAM_INT.