Eingabesicherheit mit "(int)" in PHP?

8

Ist (int)$_POST['post_id'] wirklich sicher? Werden negative Ganzzahlen nicht möglich sein?

    
ilhan 25.12.2010, 03:30
quelle

5 Antworten

11

Angenommen, Sie meinen sicher in Bezug auf SQL-Injection oder XSS-Angriffe , dann wahrscheinlich ja. Durch das Umwandeln in int wird nur sichergestellt, dass der Wert eine Ganzzahl ist. Eine ganze Zahl ist in der Regel nicht normalerweise gefährlich. Es garantiert jedoch nicht die Sicherheit des Wertes der ganzen Zahl . Es kann sich um 0 handeln, das in Ihrem Code eine besondere Bedeutung haben kann oder auch nicht, z. B. beim Vergleich mit false . Oder es kann negativ sein, was wiederum in Ihrem Code irgendwelche Nebenwirkungen haben kann oder auch nicht.

"Sicherheit" ist keine absolute Sache. Die Zeichenfolge "1 = 1; DROP TABLE users" selbst ist auch sicher . Es hängt nur vom Kontext ab, in dem Sie es verwenden. Ein 0 ist genauso sicher, bis der Code if (!$number) deleteAllUsers(); enthält.

    
deceze 25.12.2010, 03:52
quelle
3

Es ist "sicher", je nachdem, was Sie tun möchten. Es wird die Variable nur in eine ganze Zahl umgewandelt, solange PHP s die Speichernutzung betrifft. Es erlaubt negative ganze Zahlen.

    
Glen Solsberry 25.12.2010 03:34
quelle
3

Für (int) in PHP:

%Vor%

Übergeben Sie niemals einen unbekannten Bruch an eine Ganzzahl, da dies manchmal zu unerwarteten Ergebnissen führen kann.

Sehen Sie sich die PHP-Dokumentation zu Ganzzahlen an.

    
Wazzzy 25.12.2010 03:37
quelle
1

Die Verwendung von int ist für den Hinting Casting, wie

%Vor%

ist sicher für negative ganze Zahlen

mein Fehler: Typ Hint gilt nur für Array und Objekt

weitere Details zum Typcasting

    
ajreal 25.12.2010 03:34
quelle
0

Ja, es ist "sicher" in Bezug auf SQL-Injection- oder XSS-Angriffe.

Wenn Sie vorzeichenlose Ganzzahlen (keine negativen Werte) für Primärschlüssel oder andere Felder in Ihrer Datenbank verwenden (Platz sparen), müssen Sie zusätzlich PHP-Funktion abs () und Casting verwenden, um unbehandelte Fehler zu vermeiden:

%Vor%     
mikikg 02.09.2011 19:38
quelle

Tags und Links