Filteren POST data
mooie simpele site zo zie ik een website het liefst.
Ik moest een nieuw wachtwoord aanvragen dus knip en plak ik deze uit mijn E-mail. Alleen ik had de 1e keer niet in de gaten dat er een spatie meegenomen werd (na de 2e keer ook niet trouwens).
Volgens mij mag je POST (alles wat in superglobal zit) gewoon trimmen.
Nog nooit klachten over gehad.
Ik gebruik zelf een filter voor superglobals deze roept voor iedere waarde (key trouwens ook) onderstaande methode aan. Kijk maar wat jullie er mee doen.
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
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
<?php
/**
* Geeft een variabele het juiste type
* en vervangt wat zaken in de variabele.
*
* @param mixes $_mVar | Mixed input
* @param boolean $_bMultibyte | Does $_mVar hold a multibyte string. (default false)
* @return mixed
*
* @access private
*
* Notes:
* -
*/
private function _set_var( $_mVar,
$_bMultibyte = false )
{
if( $_mVar === 0
|| $_mVar === ''
|| !is_string($_mVar) )
{
return $_mVar;
}
$_mVar = trim(htmlspecialchars(str_replace(array("\r\n", "\r", "\0"), array("\n", "\n", ''), $_mVar), ENT_COMPAT, 'UTF-8'));
if( $_mVar )
{
if( $_bMultibyte )
{
# Make sure multibyte characters are wellformed
if( !preg_match('/^./u', $_mVar) )
{
$_mVar = '';
}
}
else
{
# Unicode: Basic Latin (00–7F)
# Latin-1 Supplement (80–FF)
# No multibyte, allow only ASCII (0-127)
$_mVar = preg_replace('/[\x80-\xFF]/', '?', $_mVar);
}
}
if( $this->_bMagicQuotesGPC )
{
$_mVar = stripslashes($_mVar);
}
return $_mVar;
} # End method _set_var
?>
/**
* Geeft een variabele het juiste type
* en vervangt wat zaken in de variabele.
*
* @param mixes $_mVar | Mixed input
* @param boolean $_bMultibyte | Does $_mVar hold a multibyte string. (default false)
* @return mixed
*
* @access private
*
* Notes:
* -
*/
private function _set_var( $_mVar,
$_bMultibyte = false )
{
if( $_mVar === 0
|| $_mVar === ''
|| !is_string($_mVar) )
{
return $_mVar;
}
$_mVar = trim(htmlspecialchars(str_replace(array("\r\n", "\r", "\0"), array("\n", "\n", ''), $_mVar), ENT_COMPAT, 'UTF-8'));
if( $_mVar )
{
if( $_bMultibyte )
{
# Make sure multibyte characters are wellformed
if( !preg_match('/^./u', $_mVar) )
{
$_mVar = '';
}
}
else
{
# Unicode: Basic Latin (00–7F)
# Latin-1 Supplement (80–FF)
# No multibyte, allow only ASCII (0-127)
$_mVar = preg_replace('/[\x80-\xFF]/', '?', $_mVar);
}
}
if( $this->_bMagicQuotesGPC )
{
$_mVar = stripslashes($_mVar);
}
return $_mVar;
} # End method _set_var
?>
Gewijzigd op 25/05/2010 19:09:53 door Martijn B
Bedankt voor de tip! Maar stel dat iemand nou een spatie in zijn wachtwoord wil?