以下此功能是否可以阻止 XSS攻击和 sql注入?
require_once('security.class.php');
function secure_data($data) {
$data = mysql_real_escape_string($data);
$filtered_data = filter_var($data, FILTER_SANITIZE_STRING);
$secure_class = new security_class();
$clean_data = $secure_class->xss_clean($filtered_data);
return $clean_data;
}
安全类来自codeigniter。
答案 0 :(得分:6)
你不应该试图像这样“强力”安全 - 在每一段数据上一个接一个地分层所有这些不同的过滤器/转义是愚蠢的,并且可能实际上使转义不按计划工作。
这是因为为一种转义添加的字符种类可能被另一种转移。你也可能最终过度逃避。
相反,您应该使用特定于您实际尝试的转义函数:
mysqli_real_escape_string()
运行它们(或者更好的是,通过MySQLi / PDO使用预准备语句)。