f3c9bdb944276d85f2e7240604e6259a326b7861
bernd input-filtering

bernd authored 17 years ago

1) <?php
Bernd Wurst Added license tags for CC0,...

Bernd Wurst authored 12 years ago

2) /*
3) This file belongs to the Webinterface of schokokeks.org Hosting
4) 
Hanno Böck Change license from CC0 to...

Hanno Böck authored 2 years ago

5) Written by schokokeks.org Hosting, namely
Bernd Wurst Added license tags for CC0,...

Bernd Wurst authored 12 years ago

6)   Bernd Wurst <bernd@schokokeks.org>
7)   Hanno Böck <hanno@schokokeks.org>
8) 
Hanno Böck Change license from CC0 to...

Hanno Böck authored 2 years ago

9) This code is published under a 0BSD license.
Bernd Wurst Added license tags for CC0,...

Bernd Wurst authored 12 years ago

10) 
11) Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
12) */
bernd input-filtering

bernd authored 17 years ago

13) 
bernd Umfangreiche Code-Aufräumar...

bernd authored 17 years ago

14) require_once('inc/error.php');
Hanno Böck move crypt password hash ve...

Hanno Böck authored 1 year ago

15) require_once('inc/base.php');
Hanno Böck replace cracklib with zxcvbn

Hanno Böck authored 8 years ago

16) require_once('vendor/autoload.php');
bernd Umfangreiche Code-Aufräumar...

bernd authored 17 years ago

17) 
Hanno Böck move crypt password hash ve...

Hanno Böck authored 1 year ago

18) function gen_pw_hash($password)
19) {
Hanno Böck Use yescrypt instead of SHA...

Hanno Böck authored 1 year ago

20)     /* For yescrypt, a 128 bit salt in non-standard base64 is
21)        needed. We just need random data with valid encoding. */
22)     $salt = base64_encode(random_bytes(16));
23)     $salt = rtrim($salt, "=");
24)     $salt = strtr($salt, "AQgw+/01", "./01AQgw");
25)     $pwhash = crypt($password, '$y$j9T$' . $salt);
Hanno Böck move crypt password hash ve...

Hanno Böck authored 1 year ago

26)     if (strlen($pwhash) < 13) {
27)         /* returns a string shorter than 13 chars on failure */
28)         system_failure("Failed to calculate password hash!");
29)     }
30)     return $pwhash;
31) }
32) 
Hanno Böck Codingstyle PSR12 + array s...

Hanno Böck authored 3 years ago

33) function strong_password($password, $user = [])
bernd * Passwörter mit cracklib p...

bernd authored 17 years ago

34) {
Bernd Wurst support online check for pa...

Bernd Wurst authored 5 years ago

35)     $pwcheck = config('pwcheck');
36)     $result = null;
37)     if ($pwcheck) {
38)         DEBUG($pwcheck);
Bernd Wurst use POST for password checker

Bernd Wurst authored 5 years ago

39)         $req = curl_init($pwcheck);
Bernd Wurst support online check for pa...

Bernd Wurst authored 5 years ago

40)         curl_setopt($req, CURLOPT_RETURNTRANSFER, 1);
41)         curl_setopt($req, CURLOPT_SSL_VERIFYPEER, 1);
42)         curl_setopt($req, CURLOPT_SSL_VERIFYSTATUS, 1);
43)         curl_setopt($req, CURLOPT_CONNECTTIMEOUT, 5);
44)         curl_setopt($req, CURLOPT_TIMEOUT, 5);
45)         curl_setopt($req, CURLOPT_FOLLOWLOCATION, 0);
Bernd Wurst use POST for password checker

Bernd Wurst authored 5 years ago

46)         curl_setopt($req, CURLOPT_POST, 1);
Hanno Böck Spaces between string conca...

Hanno Böck authored 1 year ago

47)         curl_setopt($req, CURLOPT_POSTFIELDS, "password=" . urlencode($password));
Bernd Wurst support online check for pa...

Bernd Wurst authored 5 years ago

48)         $result = chop(curl_exec($req));
49)         DEBUG($result);
50)     }
51)     if ($result === 'good') {
52)         return true;
53)     } elseif ($result === 'bad') {
Bernd Wurst better error message for we...

Bernd Wurst authored 5 years ago

54)         return "Unsere Überprüfung hat ergeben, dass dieses Passwort in bisher veröffentlichten Passwortlisten enthalten ist. Es wird daher nicht akzeptiert.";
Bernd Wurst support online check for pa...

Bernd Wurst authored 5 years ago

55)     }
Bernd Wurst use Zxcvbn as fallback in e...

Bernd Wurst authored 5 years ago

56)     // Kein Online-Check eingerichtet oder der request war nicht erfolgreich
57)     DEBUG('using Zxcvbn for password check!');
58)     $passwordchecker = new ZxcvbnPhp\Zxcvbn();
Bernd Wurst PHP 8.0 compatibility

Bernd Wurst authored 4 years ago

59)     if ($user) {
60)         $strength = $passwordchecker->passwordStrength($password, $user);
61)     } else {
62)         $strength = $passwordchecker->passwordStrength($password);
63)     }
Hanno Böck Spaces between string conca...

Hanno Böck authored 1 year ago

64)     DEBUG('password strength: ' . $strength['score']);
Bernd Wurst use Zxcvbn as fallback in e...

Bernd Wurst authored 5 years ago

65)     if ($strength['score'] < 2) {
66)         return "Das Passwort ist zu einfach!";
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

67)     }
68)     return true;
bernd * Passwörter mit cracklib p...

bernd authored 17 years ago

69) }
70) 
71) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

72) function filter_input_general($input)
bernd input-filtering

bernd authored 17 years ago

73) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

74)     if ($input === null) {
75)         return null;
76)     }
Bernd Wurst accept integer parameters i...

Bernd Wurst authored 5 years ago

77)     $input = (string) $input;
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

78)     $filtered = preg_replace('/[\x00-\x09\x0b-\x0c\x0e-\x1f]/', '', $input);
79)     if ($filtered !== $input) {
80)         system_failure("Ihre Daten enthielten ungültige Zeichen!");
81)         logger(LOG_WARNING, 'inc/security', 'filter_input_general', 'Ungültige Daten!');
82)     }
83)     return $filtered;
bernd Umfangreiche Code-Aufräumar...

bernd authored 17 years ago

84) }
85) 
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

86) function filter_input_oneline($input)
bernd Umfangreiche Code-Aufräumar...

bernd authored 17 years ago

87) {
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

88)     if ($input === null) {
89)         return null;
90)     }
Bernd Wurst accept integer parameters i...

Bernd Wurst authored 5 years ago

91)     $input = (string) $input;
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

92)     $filtered = preg_replace('/[\x00-\x1f]/', '', $input);
93)     if ($filtered !== $input) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

94)         system_failure("Ihre Daten enthielten ungültige Zeichen!");
Bernd Wurst accept integer parameters i...

Bernd Wurst authored 5 years ago

95)         logger(LOG_WARNING, 'inc/security', 'filter_input_oneline', 'Ungültige Daten!');
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

96)     }
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

97)     return $filtered;
bernd input-filtering

bernd authored 17 years ago

98) }
99) 
100) 
Bernd Wurst New function filter_output_...

Bernd Wurst authored 5 years ago

101) function filter_output_html($data)
102) {
Hanno Böck Fix not operator (!) spaces

Hanno Böck authored 1 year ago

103)     if (!$data) {
Bernd Wurst upgrade dependancies

Bernd Wurst authored 2 years ago

104)         return "";
105)     }
Bernd Wurst New function filter_output_...

Bernd Wurst authored 5 years ago

106)     return htmlspecialchars($data, ENT_QUOTES);
107) }
108) 
109) 
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

110) function verify_input_ascii($data)
111) {
Bernd Wurst accept integer parameters i...

Bernd Wurst authored 5 years ago

112)     $data = (string) $data;
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

113)     $filtered = filter_var($data, FILTER_UNSAFE_RAW, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);
114)     if ($filtered != $data) {
Hanno Böck Spaces between string conca...

Hanno Böck authored 1 year ago

115)         logger(LOG_WARNING, 'inc/security', 'verify_input_ascii', 'Ungültige Daten: ' . $data);
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

116)         system_failure("Ihre Eingabe enthielt ungültige Zeichen");
117)     }
118)     return $filtered;
119) }
120) 
121) 
122) function verify_input_identifier($data)
123) {
Bernd Wurst accept integer parameters i...

Bernd Wurst authored 5 years ago

124)     $data = (string) $data;
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

125)     if ($data === "") {
126)         system_failure("Leerer Bezeichner");
127)     }
128)     $filtered = preg_replace("/[^[:alnum:]\_\.\-]/", "", $data);
129)     if ($filtered !== $data) {
Hanno Böck Spaces between string conca...

Hanno Böck authored 1 year ago

130)         logger(LOG_WARNING, 'inc/security', 'verify_input_identifier', 'Ungültige Daten: ' . $data);
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

131)         system_failure("Ihre Daten enthielten ungültige Zeichen!");
132)     }
133)     return $filtered;
134) }
135) 
Bernd Wurst New function filter_output_...

Bernd Wurst authored 5 years ago

136) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

137) function filter_input_username($input)
bernd input-filtering

bernd authored 17 years ago

138) {
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

139)     $username = preg_replace("/[^[:alnum:]\_\.\+\-]/", "", $input);
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

140)     if ($username === "") {
141)         system_failure("Leerer Benutzername!");
142)     }
143)     return $username;
hanno Hatte die Kompatibilität ge...

hanno authored 17 years ago

144) }
145) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

146) function verify_input_username($input)
hanno Hatte die Kompatibilität ge...

hanno authored 17 years ago

147) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

148)     if (filter_input_username($input) != $input) {
Hanno Böck Spaces between string conca...

Hanno Böck authored 1 year ago

149)         logger(LOG_WARNING, 'inc/security', 'verify_input_username', 'Ungültige Daten: ' . $input);
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

150)         system_failure("Ihre Daten enthielten ungültige Zeichen!");
151)     }
bernd input-filtering

bernd authored 17 years ago

152) }
153) 
bernd Umfangreiche Code-Aufräumar...

bernd authored 17 years ago

154) 
155) 
Hanno Böck codingstyle, spaces between...

Hanno Böck authored 1 year ago

156) function filter_input_hostname($input, $wildcard = false)
bernd check auf hostname

bernd authored 17 years ago

157) {
Hanno Böck Spaces between string conca...

Hanno Böck authored 1 year ago

158)     DEBUG('filter_input_hostname("' . $input . '", $wildcard=' . $wildcard . ')');
Hanno Spezialbehandlung für äöü n...

Hanno authored 6 years ago

159)     $input = strtolower($input);
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

160)     $input = trim($input, "\t\n\r\x00 .");
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

161)     if (preg_replace("/[^.]_/", "", $input) != $input) {
162)         system_failure("Der Unterstrich ist nur als erstes Zeichen eines Hostnames erlaubt.");
163)     }
Hanno Spezialbehandlung für äöü n...

Hanno authored 6 years ago

164)     if (preg_replace("/[^[:alnum:]_*\.\-]/u", "", $input) != $input) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

165)         system_failure("Ihre Daten enthielten ungültige Zeichen!");
166)     }
167)     if (preg_match("/^.+\*/", $input)) {
168)         system_failure("Ihre Daten enthielten ungültige Zeichen (Wildcard-Stern muss ganz vorne stehen)!");
169)     }
Hanno Böck Fix not operator (!) spaces

Hanno Böck authored 1 year ago

170)     if (!$wildcard && preg_replace("/^\*/", "", $input) != $input) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

171)         system_failure("Ihre Daten enthielten ungültige Zeichen (Keine Wildcards erlaubt)!");
172)     }
173)     if (strstr($input, '..')) {
174)         system_failure("Ungültiger Hostname");
175)     }
176)     return $input;
bernd check auf hostname

bernd authored 17 years ago

177) }
178) 
Hanno Böck codingstyle, spaces between...

Hanno Böck authored 1 year ago

179) function verify_input_hostname($input, $wildcard = false)
bernd Add IP-address patterns

bernd authored 16 years ago

180) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

181)     if (filter_input_hostname($input, $wildcard) != $input) {
Hanno Böck Spaces between string conca...

Hanno Böck authored 1 year ago

182)         logger(LOG_WARNING, 'inc/security', 'verify_input_hostname', 'Ungültige Daten: ' . $input);
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

183)         system_failure("Ihre Daten enthielten ungültige Zeichen!");
184)     }
bernd Add IP-address patterns

bernd authored 16 years ago

185) }
186) 
187) 
Hanno Böck vhost-hostnamen vernünftig...

Hanno Böck authored 6 years ago

188) function verify_input_hostname_utf8($input)
189) {
190)     $puny = idn_to_ascii($input, IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46);
191)     if ($puny === false) {
Hanno Böck Spaces between string conca...

Hanno Böck authored 1 year ago

192)         system_failure("Ungültiger Hostname! idn " . $input);
Hanno Böck vhost-hostnamen vernünftig...

Hanno Böck authored 6 years ago

193)     }
194)     $filter = filter_var($puny, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME);
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

195)     if ($filter !== $puny) {
Hanno Böck Spaces between string conca...

Hanno Böck authored 1 year ago

196)         system_failure("Ungültiger Hostname! filter " . $input);
Hanno Böck vhost-hostnamen vernünftig...

Hanno Böck authored 6 years ago

197)     }
198) }
199) 
200) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

201) function verify_input_ipv4($input)
bernd Add IP-address patterns

bernd authored 16 years ago

202) {
Hanno Böck Fix not operator (!) spaces

Hanno Böck authored 1 year ago

203)     if (!preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/", $input)) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

204)         system_failure('Keine IP-Adresse');
205)     }
bernd Add IP-address patterns

bernd authored 16 years ago

206) }
207) 
208) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

209) function verify_input_ipv6($input)
bernd Add IP-address patterns

bernd authored 16 years ago

210) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

211)     // ripped from Perl module Net-IPv6Addr v0.2
Hanno Böck Fix not operator (!) spaces

Hanno Böck authored 1 year ago

212)     if (!preg_match("/^(([0-9a-f]{1,4}:){7}[0-9a-f]{1,4}|[0-9a-f]{0,4}::|:(?::[a-f0-9]{1,4}){1,6}|(?:[a-f0-9]{1,4}:){1,6}:|(?:[a-f0-9]{1,4}:)(?::[a-f0-9]{1,4}){1,6}|(?:[a-f0-9]{1,4}:){2}(?::[a-f0-9]{1,4}){1,5}|(?:[a-f0-9]{1,4}:){3}(?::[a-f0-9]{1,4}){1,4}|(?:[a-f0-9]{1,4}:){4}(?::[a-f0-9]{1,4}){1,3}|(?:[a-f0-9]{1,4}:){5}(?::[a-f0-9]{1,4}){1,2}|(?:[a-f0-9]{1,4}:){6}(?::[a-f0-9]{1,4}))$/i", $input)) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

213)         system_failure("Ungültige IPv6-Adresse");
214)     }
bernd Add IP-address patterns

bernd authored 16 years ago

215) }
bernd Umfangreiche Code-Aufräumar...

bernd authored 17 years ago

216) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

217) function verify_input_recorddata($input)
Hanno Böck Prüfe DNS-Records auf probl...

Hanno Böck authored 7 years ago

218) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

219)     if (strstr($input, "\\") || strstr($input, '"')) {
220)         system_failure("Ungültige Zeichen");
221)     }
Hanno Böck Prüfe DNS-Records auf probl...

Hanno Böck authored 7 years ago

222) }
bernd Umfangreiche Code-Aufräumar...

bernd authored 17 years ago

223) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

224) function filter_quotes($input)
bernd Im Passwort dürfen auch kei...

bernd authored 17 years ago

225) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

226)     return preg_replace('/["\'`]/', '', $input);
bernd Im Passwort dürfen auch kei...

bernd authored 17 years ago

227) }
228) 
bernd Umfangreiche Code-Aufräumar...

bernd authored 17 years ago

229) 
230) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

231) function filter_shell($input)
bernd Diverse shell-kritische zei...

bernd authored 17 years ago

232) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

233)     return preg_replace('/[^-[:alnum:]\_\.\+ßäöüÄÖÜ/%§=]/', '', $input);
bernd Umfangreiche Code-Aufräumar...

bernd authored 17 years ago

234) }
235) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

236) function verify_shell($input)
bernd Umfangreiche Code-Aufräumar...

bernd authored 17 years ago

237) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

238)     if (filter_shell($input) != $input) {
239)         system_failure("Ihre Daten enthielten ungültige Zeichen!");
240)     }
bernd Diverse shell-kritische zei...

bernd authored 17 years ago

241) }
bernd input-filtering

bernd authored 17 years ago

242) 
bernd Umfangreiche Code-Aufräumar...

bernd authored 17 years ago

243) 
Hanno Böck validiere SSH-Keys korrekt

Hanno Böck authored 7 years ago

244) function filter_ssh_key($key)
245) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

246)     $keyparts = explode(" ", trim($key));
Hanno Böck validiere SSH-Keys korrekt

Hanno Böck authored 7 years ago

247) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

248)     if ((count($keyparts) > 3) || (count($keyparts) < 2)) {
249)         system_failure("Ungültiger SSH-Key!");
250)     }
Hanno Böck validiere SSH-Keys korrekt

Hanno Böck authored 7 years ago

251) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

252)     if (preg_match("/^[a-z0-9]+-[a-z0-9-]+$/", $keyparts[0]) === 0) {
253)         system_failure("Ungültiger SSH-Key!");
254)     }
Hanno Böck validiere SSH-Keys korrekt

Hanno Böck authored 7 years ago

255) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

256)     if (base64_decode($keyparts[1], 1) == false) {
257)         system_failure("Ungültiger SSH-Key!");
258)     }
Hanno Böck validiere SSH-Keys korrekt

Hanno Böck authored 7 years ago

259) 
Hanno Böck fix regular expression (was...

Hanno Böck authored 4 years ago

260)     if ((count($keyparts) === 3) && (preg_match("/^[a-zA-Z0-9@._-]+$/", $keyparts[2]) === 0)) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

261)         system_failure("Ungültige Zeichen im Kommentar des SSH-Keys!");
262)     }
Hanno Böck validiere SSH-Keys korrekt

Hanno Böck authored 7 years ago

263) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

264)     if (count($keyparts) === 2) {
Hanno Böck Spaces between string conca...

Hanno Böck authored 1 year ago

265)         return $keyparts[0] . " " . $keyparts[1];
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

266)     } else {
Hanno Böck Spaces between string conca...

Hanno Böck authored 1 year ago

267)         return $keyparts[0] . " " . $keyparts[1] . " " . $keyparts[2];
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

268)     }
Hanno Böck validiere SSH-Keys korrekt

Hanno Böck authored 7 years ago

269) }
270) 
bernd Umfangreiche Code-Aufräumar...

bernd authored 17 years ago

271) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

272) function check_path($input)
bernd XSS/CSRF-Bugs behoben

bernd authored 17 years ago

273) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

274)     DEBUG("checking {$input} for valid path name");
Bernd Wurst New function filter_output_...

Bernd Wurst authored 5 years ago

275)     if ($input != filter_output_html($input)) {
Hanno Böck Spaces between string conca...

Hanno Böck authored 1 year ago

276)         logger(LOG_WARNING, 'inc/security', 'check_path', 'HTML-Krams im Pfad: ' . $input);
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

277)         DEBUG("HTML-Krams im Pfad");
278)         return false;
279)     }
280)     $components = explode("/", $input);
281)     foreach ($components as $item) {
282)         if ($item == '..') {
Hanno Böck Spaces between string conca...

Hanno Böck authored 1 year ago

283)             logger(LOG_WARNING, 'inc/security', 'check_path', '»..« im Pfad: ' . $input);
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

284)             DEBUG("»..« im Pfad");
285)             return false;
286)         }
Hanno prevent breaking kvhostcrea...

Hanno authored 6 years ago

287)         if (strlen($item) > 255) {
288)             return false;
289)         }
290)     }
291)     if (strlen($input) > 2048) {
292)         return false;
bernd XSS/CSRF-Bugs behoben

bernd authored 17 years ago

293)     }
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

294)     return (preg_match('/^[ A-Za-z0-9.@\/_-]*$/', $input) == 1);
bernd XSS/CSRF-Bugs behoben

bernd authored 17 years ago

295) }
296) 
297) 
bernd * alle internen Links sinnv...

bernd authored 15 years ago

298) function in_homedir($path)
299) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

300)     DEBUG("Prüfe »{$path}«");
Hanno Böck Fix not operator (!) spaces

Hanno Böck authored 1 year ago

301)     if (!check_path($path)) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

302)         DEBUG('Kein Pfad');
303)         return false;
304)     }
Hanno Böck Fix not operator (!) spaces

Hanno Böck authored 1 year ago

305)     if (!isset($_SESSION['userinfo']['homedir'])) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

306)         DEBUG("Kann homedir nicht ermitteln");
307)         return false;
308)     }
Bernd Wurst Syntaxfehler

Bernd Wurst authored 6 years ago

309)     return strncmp($_SESSION['userinfo']['homedir'], $path, strlen($_SESSION['userinfo']['homedir'])) == 0;
bernd * alle internen Links sinnv...

bernd authored 15 years ago

310) }
311) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

312) function check_date($input)
Bernd Wurst Erste Version des SEPA-Mand...

Bernd Wurst authored 11 years ago

313) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

314)     return (bool) preg_match("/[0-9]{4}-(0?[1-9]|10|11|12)-([012]?[0-9]|30|31)/", $input);
Bernd Wurst Erste Version des SEPA-Mand...

Bernd Wurst authored 11 years ago

315) }
316) 
bernd * alle internen Links sinnv...

bernd authored 15 years ago

317) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

318) function check_emailaddr($input)
bernd Neues Modul für "Kunde werden"

bernd authored 17 years ago

319) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

320)     return (bool) filter_var($input, FILTER_VALIDATE_EMAIL) == $input;
bernd don't be too complicated. /...

bernd authored 16 years ago

321) }
322) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

323) function check_domain($input)
bernd don't be too complicated. /...

bernd authored 16 years ago

324) {
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

325)     return (bool) preg_match("/^[a-z0-9\.\-]+\.[a-z\-]{2,63}$/i", $input);
bernd Neues Modul für "Kunde werden"

bernd authored 17 years ago

326) }
Hanno Böck Add function to check input...

Hanno Böck authored 4 years ago

327) 
328) function check_input_types($input, $types)
329) {
330)     foreach ($types as $key => $type) {
331)         if (!array_key_exists($key, $input)) {
332)             system_failure("Interner Fehler bei Eingabevariablen");
333)         }
334)         if ($type === 'int') {
Hanno Böck codingstyle - spaces with c...

Hanno Böck authored 11 months ago

335)             if ($input[$key] !== (string) (int) $input[$key]) {