Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
de:entwickler:uebergabevariablen_pruefen [2009/02/17 19:00] – fasse | de:entwickler:uebergabevariablen_pruefen [2012/05/12 01:09] (current) – [Funktion admFuncVariableIsValid] thomas-rcv | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Übergabevariablen prüfen ====== | ====== Übergabevariablen prüfen ====== | ||
- | Da Übergaben an Scripte von Angreifern manipuliert werden | + | Übergaben an PHP-Scripte |
- | //(Als Referenzbeispiel dient im Moment adm_program/administration/members/members.php)// | + | Admidio lässt generell über alle übergebenen **$_GET** und **$_POST** Varialben die Funktionen [[http://de2.php.net/manual/de/function.strip-tags.php|strip_tags]] und [[http://de2.php.net/ |
- | **Lokale initialisierte Variablen anstelle der $_GET und $_POST Arrays verwenden:** | + | Zur Prüfung der Übergabevariablen steht die Funktion |
- | Es sollte für jede Übergabevariable | + | |
- | Dies hat den Vorteil, dass es immer einen definierten Zustand der lokalen | + | ===== Funktion admFuncVariableIsValid ===== |
+ | '' | ||
+ | '' | ||
+ | === Beschreibung === | ||
+ | Die Funktion prüft aus einem Array eine Variable | ||
+ | <code php> | ||
+ | | ||
+ | === Parameter === | ||
+ | * **array** das Array (z.B. $_GET oder $_POST), welches die zu prüfende Variable enthält | ||
+ | * **variableName** Name der Variable aus dem //array// welche geprüft werden soll | ||
+ | * **type** Typ der Variable '' | ||
+ | * **defaultValue** Wurde kein Wert für die Variable dem Script übergeben, wird die Variable mit diesem Wert initialisiert | ||
+ | * **requireValue** Ist dies auf //true// gesetzt, so wird ein Hinweis ausgegeben, wenn der Variablen kein Wert übergeben wurde | ||
+ | * **validValues** ein Array mit gültigen Werten für die Variable. Ist der übergebene Wert nicht in diesem Array enthalten wird ein Hinweis ausgegeben | ||
+ | * **directOutput** Ist dieser Wert auf //true// gesetzt, so wird eine Fehlermeldung nicht als HTML-Seite zurückgegeben, | ||
+ | === Rückgabe === | ||
+ | Zurückgegeben wird der Wert der Variable. Bei Texten wird hier noch zusätzlich die Funktion strip_tags durchgeführt, | ||
- | Die lokalen Variablen sollten am Besten immer mit **$req_** | + | === Beispiele === |
+ | <code php>// Zahl, welche ggf. mit 0 initialisiert wird | ||
+ | $get_dat_id = admFuncVariableIsValid($_GET, ' | ||
- | Beispiel: <code php>$req_start | + | // Text, der ggf. mit DAT_DATES initialisiert wird |
- | ... | + | $get_headline |
- | if(isset($_GET['start'])) | + | |
- | { | + | |
- | if(is_numeric($_GET[" | + | |
- | { | + | |
- | | + | |
- | } | + | |
- | $req_start = $_GET['start']; | + | |
- | }</ | + | |
- | **Numerische Felder generell: | + | // Text, der ggf. mit ' |
- | Numerische Felder sollten immer mit der Funktion | + | $get_mode |
- | ... | + | |
- | if(isset($_GET[" | + | |
- | { | + | |
- | if(is_numeric($_GET[" | + | |
- | || $_GET[" | + | |
- | { | + | |
- | $g_message-> | + | |
- | } | + | |
- | $req_mode = $_GET["mode"] | + | |
- | }</ | + | |
- | + | ||
- | **Alphanumerische Felder:** | + | |
- | Alphanumerische Felder sollten durch die internen Funktion // | + | |
- | .. | + | |
- | if(isset($_POST['headline'])) | + | |
- | { | + | |
- | $req_headline = strStripTags($_POST['headline']); | + | |
- | }</ | + |