function quotes($content)
{
if (!get_magic_quotes_gpc()) {
return addslashes($content);
} else{
return $content;
}
}单纯从安全性的角度讲,这段代码的优缺点,谢谢
{
if (!get_magic_quotes_gpc()) {
return addslashes($content);
} else{
return $content;
}
}单纯从安全性的角度讲,这段代码的优缺点,谢谢
这个函数只是为了将传入的数据直接写入数据库而设计的
他并不能保证从其他途径得到的数据也进行了必要的转义处理php基本的数据库操作函数已经能够完成一般的防止sql注入的工作,并不需要自己另外处理
$name = stripslashes($name);
}else{
$name = mysql_real_escape_string($name);}
mysql_query(“SELECT * FROM users WHERE name=’{$name}’”);
function check_input($value)
{
if(is_array($value))
{
foreach ($value as $k=>$values)
{
//自动过滤掉单引号,因为我构造的sql语句中,用的是单引号“包装”值
if(stripos($values,"'"))
{
$values = str_ireplace("'",'',$values);
//echo "<script>alert('信息中英文的单引号会被自动过滤掉');</script>";
}
$values = strip_tags($values);
if(!get_magic_quotes_gpc())
{
$values = addslashes($values);
}
//$values= htmlspecialchars($values); //这个大家觉得有必要加上么
$key[] = $k;
$arr[] = trim($values);
}
$return = array_combine($key,$arr);
}
else
{
if(stripos($value,"'"))
{
$value = str_ireplace("'",'',$value);
}
$value = strip_tags($value);
if(!get_magic_quotes_gpc())
{
$value = addslashes($value);
}
$return = $value;
}
return $return;
}
不知道这个怎么样,希望大伙儿拍砖mysql_real_escape_string挺好的,我没加进去,因为mysql_real_escape_string必须在连接数据库之后才能使用
{
return get_magic_quotes_gpc() ? $content : addslashes($content);
}这个可以应付SQL注入了
但还要考虑其他: XSS,最大长度等