This question already has answers here:
Do htmlspecialchars and mysql_real_escape_string keep my PHP code safe from injection?
(6个答案)
6年前关闭。
我正在尝试提出一种方法,可以通过一个函数有效轻松地清除所有POST和GET变量。这是函数本身:
这是调用它的代码:
对我来说,这似乎应该起作用。但是由于某种原因,它不会从表单中的某些复选框返回数组。他们总是空白。
我已经在没有上述功能的情况下测试了我的代码,并且工作正常,我只想在其中增加一点安全性。
谢谢!
(6个答案)
6年前关闭。
我正在尝试提出一种方法,可以通过一个函数有效轻松地清除所有POST和GET变量。这是函数本身:
//clean the user's input
function cleanInput($value, $link = '')
{
//if the variable is an array, recurse into it
if(is_array($value))
{
//for each element in the array...
foreach($value as $key => $val)
{
//...clean the content of each variable in the array
$value[$key] = cleanInput($val);
}
//return clean array
return $value;
}
else
{
return mysql_real_escape_string(strip_tags(trim($value)), $link);
}
}
这是调用它的代码:
//This stops SQL Injection in POST vars
foreach ($_POST as $key => $value)
{
$_POST[$key] = cleanInput($value, $link);
}
//This stops SQL Injection in GET vars
foreach ($_GET as $key => $value)
{
$_GET[$key] = cleanInput($value, $link);
}
对我来说,这似乎应该起作用。但是由于某种原因,它不会从表单中的某些复选框返回数组。他们总是空白。
我已经在没有上述功能的情况下测试了我的代码,并且工作正常,我只想在其中增加一点安全性。
谢谢!
最佳答案
您所做的还不够。参见here。
08-16 16:40