我创建了两个简单的函数来过滤插入的数据,然后将其输入到mysql查询中。
对于formfields(我也使用正则表达式分别检查每个字段。
// Form filter function filter($var) { // HTML is not allowed $var = strip_tags(trim($var)); // Check magic quotes and stripslashes if(get_magic_quotes_gpc()) { $var = stripslashes($var); } // Not using it right now, is it recommended? // $var = htmlentities($var, ENT_QUOTES); // Escape $var = mysql_real_escape_string($var); // Return return $var; }
然后针对id(在URL中发送),我使用此过滤器:
// ID filter function idfilter($idfilter) { // Delete everything except numbers $idfilter = ereg_replace("[^0-9]", "", $idfilter); // Round numbers $idfilter = round($idfilter); // Test if the input is indeed a number if(!is_numeric($idfilter) || $idfilter % 1 != 0) { $idfilter = 0; } // Filter using the formfilter (above) return filter($idfilter); }
是否有建议添加或删除这些简单功能?而且“安全”吗?
您正在使用不赞成使用的函数asmagic_quotes和ereg_*。为了防止Sql注入,您应该使用 准备好的语句 (我建议使用PDO),并且为了防止XSS,您应该在执行操作时使用strip_tags()。
magic_quotes
ereg_*