有没有办法以尽可能少的代码为SQL注入和最常见的攻击形式过滤字符串?
在我的脚本中我使用以下内容,我想知道它是否相当安全以及是否有其他人有建议:
$cleanName = htmlspecialchars(addslashes($dirtyName));
Run Code Online (Sandbox Code Playgroud)
看看我如何过滤html字符和引号和双引号.
注意:我正在使用addslashes()而不是mysql_real_escape_string()因为我不想将我正在使用的数据库硬编码到我的代码中.
这个可以吗?
提前致谢
我正在使用以下功能来保护我的数据库免受注入攻击等gets.
function filter($data) {
global $db;
$data = trim(htmlentities(strip_tags($data)));
if (get_magic_quotes_gpc())
$data = stripslashes($data);
$data = $db->real_escape_string($data);
return $data;
}
foreach($_GET as $key => $value) {
$data[$key] = filter($value);
}
Run Code Online (Sandbox Code Playgroud)
问题是,我想不仅过滤$_GET,但$_POST也.怎么做?
我可以重新分配值$_GET或$_POST过滤后?我的意思是$_GET[$key] = filter($value);代替$data[$key] = filter($value);..