Mittwoch, 19. Oktober 2011

PHP

Casting in PHP

PHP kann auch Casting. Was das im Einzelnen bedeutet und wie man Casting in PHP einsetzt, wird hier erläutert.

Mit Casting die Sicherheit und Robustheit von PHP erhöhen

Wer Casting schon aus anderen Programmiersprachen kennt, kann diesen Absatz überspringen. Für alle denen das Casting unbekannt ist. Hier eine Beschreibung.

Wir nehmen an, dass das PHP-Script eine $_GET Variable mit dem Namen id übermittelt bekommt. Das Problem hier ist, dass Daten welche vom Browser übermittelt werden grundsätzlich als String vorliegen.

Die Sache mit den Strings wird spätestens dann gefährlich, wenn man den Wert der Variable für Datenbankabfragen benutzt. Hier kommen die hoffentlich bekannten SQL-Injections ins Spiel.

Durch einen Cast kann man aber der Varible einen neuen Datentyp zuweisen. So wird aus dem Typ String ein Integer. Dieser Cast (Umwandlung in eine Ganzzahlt) verhindert erfolgreich eine SQL-Injection.

Beispiel für Typecasting in PHP

Download Code!

  1. //$id ist noch vom Typ String
  2. $id = $_GET['id'];
  3. echo get_type($id).'</br>';
  4. //Hier kommt nun der Cast, welcher den Variblentyp ändert
  5. $id = (int)$id;
  6. echo get_type($id).'</br>';
  7.  

Als Ausgabe bekommt man nun:

string
integer

Variablen lassen sich via Cast in folgende Typen umwandeln:

  • (int), (integer) - Cast nach Typ integer
  • (bool), (boolean) - Cast nach Typ boolean
  • (float), (double), (real) - Cast nach Typ float
  • (string) - Cast nach Typ string
  • (binary) - Cast nach Typ binary string (PHP 6)
  • (array) - Cast nach Typ array
  • (object) - Cast nach Typ object
  • (unset) - Cast nach Typ NULL (PHP 5)

Casting ist also eine nützliche Möglichkeit die Robustheit gegen Fehleingaben zu erhöhen und somit auch automatisch den Sicherheitslevel der Applikation zu verbessern.

Dies ist PHP-Tip Nummer 13 aus den 100 besten PHP Hacks, Tipps und Tricks

Bewertung: 2.33 von 5, 3 Stimme(n) 953 Klicks
Hack, PHP, Tipp, Trick
Von Mr.Foo in PHP am 19.10.11@22:01 Uhr

Trackbacks
Trackback für spezifische URI dieses Eintrags

100 besten PHP Hacks, Tips und Tricks
Wenn ihr schon immer wissen wolltet, wie ihr mehr aus eurem PHP-Code herausholen könnt, dann ist diese Artikelserie genau das Richtige für dich.
Weblog: Mr. Foo
Aufgenommen: Okt 20, 03:44

0 Kommentare
Ansicht der Kommentare: (Linear | Verschachtelt)

Noch keine Kommentare


Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
 
 

Mr. Foo

Casting in PHP

  • Homepage

Suche

Kategorien

  • Android (2)
  • C-Sharp (4)
  • Datenbank (30)
  • Delphi (2)
  • Entwicklung (36)
  • Flash (5)
  • Games (10)
  • Gutscheine (4)
  • Hardware (14)
  • HTML CSS (16)
  • Internet (88)
  • Java (32)
  • Javascript (24)
  • Linkdump (9)
  • Linux (102)
  • Low-Level (10)
  • Lua (8)
  • Musik (9)
  • Netzwerk (25)
  • New World Order (109)
  • Perl (3)
  • PHP (130)
  • Magento (5)
  • Symfony (3)
  • Zend Framework (7)
  • Probleme und Lösungen (26)
  • Python (22)
  • Ressourcen (23)
  • Sicherheit (91)
  • Software (60)
  • Sonstiges (47)
  • Own Stuff (48)
  • Spass (46)
  • Technik / Wissenschaft (4)
  • Tips (15)
  • Weisheiten (17)
  • Windows (23)
  • Wort des Tages (15)


Alle Kategorien

Archive

  • Mai 2012
  • April 2012
  • März 2012
  • Das Neueste ...
  • Älteres ...

Abonnieren lohnt sich!

  • XML RSS 2.0 feed
  • ATOM/XML ATOM 1.0 feed
  • XML RSS 2.0 Kommentare

Tagcloud

Datenbank Entwicklung Internet Java Javascript Linux Lösung Netzwerk News New World Order PHP Problem Probleme und Lösungen Sicherheit Software Sonstiges Spass Tipp Update Windows

Beliebte Einträge

  • Magento ist scheisse (197)
  • Plugin-container.exe deaktivieren (107)
  • BWin Betrug und Abzocke bei Minigames? (65)
  • C compiler cannot create executables unter Debian (53)
  • Scheiss Linux - USB-Platte viel zu langsam (wenns mal funktioniert) (43)
  • Sicheres Kontaktformular mit PHP - Spam verhindern (37)
  • UML-Diagramme aus Java-Klassen generieren – Java2UML (28)
  • Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden (28)
  • Option Bug im Internet Explorer bei Nutzung von innerHTML und Javascript (24)
  • Zend Studio - Javaw.exe lastet die CPU aus (24)

Kommentare

Hugo zu BWin Betrug und Abzocke bei Minigames?
So, 20.05.2012 12:25
ich habe mich gestern auf BWIN reg [...]
Ubuntu 12.04 zu The assembly mscorlib.dll was not found or could not be loaded.
Fr, 18.05.2012 17:11
Hat bei mir leider nicht geklappt. [...]
Oliver Riske zu Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden
Di, 15.05.2012 20:38
Super Danke!
anon zu BWin Betrug und Abzocke bei Minigames?
Sa, 05.05.2012 18:43
ihr scheiss betrüger
Jürgen zu Unable to elevate error:1814 VLC Problem
Mi, 02.05.2012 16:54
So einfach ist es bei mir jedenfal [...]
 

Kontakt/Informationen