basisbeveiliging-tegen-mysqlinjecties
Gesponsorde koppelingen
PHP script bestanden
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
/****************************
Module Laatst gewijzigd: 12-04-2008
* http://nl3.php.net/manual/en/security.database.sql-injection.php
* http://dev.mysql.com/tech-resources/articles/guide-to-php-security-ch3.pdf
* Notitie: Deze script is overigens bij 't origineel in het engels (en wat gedetaileerder) becommentariseert aangezien ik mijn systeem later op sourceforge wil delen. Bij deze alvast een voorproefje!
****************************/
function secure_it($secval='')
{
/****************************
De functies staan in chronologische volgorde voor gebruik.
1. 'mysql_real_escape_string' = Sinds PHP v. 4.3.0 (DBcon)
2. 'mysql_escape_string' = Sinds PHP v. 4.0.3 (verouderd)
3. 'addslashes' = Als de rest ook faalt...
****************************/
$secure_func_array = array
(
'mysql_real_escape_string',
'mysql_escape_string',
'addslashes'
);
/****************************
Doormiddel van deze foreach lezen we de hierboven opgegeven array uit
en checken met function_exists of de functie bestaat.
****************************/
foreach($secure_func_array as $sec_array)
{
if(function_exists($sec_array) and !isset($f2use) and empty($f2use))
{ $f2use = $sec_array; }
}
if(!empty($secval))
{
/****************************
Indien de variabele een array bevat, gaan we hier verder. $_POST
en $_GET zijn bijvoorbeeld beiden een array.
****************************/
if(is_array($secval))
{
foreach($secval as $var_name => $var_val)
{
/****************************
Indien de "uitgepakte" var nóg een array bevat,
herbruiken we deze functie om dieper door
te gaan. Je kan zo ongelimiteerd de array's doorlopen
****************************/
if(is_array($var_val))
{
$output[$var_name] = secure_it($var_val);
}
else
{
if(get_magic_quotes_gpc())
{ stripslashes($var_val); }
$output[$var_name] = $f2use($var_val);
}
}
}
else
{
/****************************
Indien de variabele verder geen array bevat komen we hier en
beveiligen de var rechtstreeks
****************************/
if(get_magic_quotes_gpc())
{ stripslashes($secval); }
$output = $f2use($secval);
}
}
if(isset($output) and !empty($output))
{ return $output; }
}
if(isset($_SERVER) and !empty($_SERVER) and is_array($_SERVER))
{ $_SERVER = secure_it($_SERVER); }
if(isset($_POST) and !empty($_POST) and is_array($_POST))
{ $_POST = secure_it($_POST); }
if(isset($_GET) and !empty($_GET) and is_array($_GET))
{ $_GET = secure_it($_GET); }
?>
/****************************
Module Laatst gewijzigd: 12-04-2008
* http://nl3.php.net/manual/en/security.database.sql-injection.php
* http://dev.mysql.com/tech-resources/articles/guide-to-php-security-ch3.pdf
* Notitie: Deze script is overigens bij 't origineel in het engels (en wat gedetaileerder) becommentariseert aangezien ik mijn systeem later op sourceforge wil delen. Bij deze alvast een voorproefje!
****************************/
function secure_it($secval='')
{
/****************************
De functies staan in chronologische volgorde voor gebruik.
1. 'mysql_real_escape_string' = Sinds PHP v. 4.3.0 (DBcon)
2. 'mysql_escape_string' = Sinds PHP v. 4.0.3 (verouderd)
3. 'addslashes' = Als de rest ook faalt...
****************************/
$secure_func_array = array
(
'mysql_real_escape_string',
'mysql_escape_string',
'addslashes'
);
/****************************
Doormiddel van deze foreach lezen we de hierboven opgegeven array uit
en checken met function_exists of de functie bestaat.
****************************/
foreach($secure_func_array as $sec_array)
{
if(function_exists($sec_array) and !isset($f2use) and empty($f2use))
{ $f2use = $sec_array; }
}
if(!empty($secval))
{
/****************************
Indien de variabele een array bevat, gaan we hier verder. $_POST
en $_GET zijn bijvoorbeeld beiden een array.
****************************/
if(is_array($secval))
{
foreach($secval as $var_name => $var_val)
{
/****************************
Indien de "uitgepakte" var nóg een array bevat,
herbruiken we deze functie om dieper door
te gaan. Je kan zo ongelimiteerd de array's doorlopen
****************************/
if(is_array($var_val))
{
$output[$var_name] = secure_it($var_val);
}
else
{
if(get_magic_quotes_gpc())
{ stripslashes($var_val); }
$output[$var_name] = $f2use($var_val);
}
}
}
else
{
/****************************
Indien de variabele verder geen array bevat komen we hier en
beveiligen de var rechtstreeks
****************************/
if(get_magic_quotes_gpc())
{ stripslashes($secval); }
$output = $f2use($secval);
}
}
if(isset($output) and !empty($output))
{ return $output; }
}
if(isset($_SERVER) and !empty($_SERVER) and is_array($_SERVER))
{ $_SERVER = secure_it($_SERVER); }
if(isset($_POST) and !empty($_POST) and is_array($_POST))
{ $_POST = secure_it($_POST); }
if(isset($_GET) and !empty($_GET) and is_array($_GET))
{ $_GET = secure_it($_GET); }
?>