时
$username = $_POST['username'];
$sanitizedUsername = strip_tags(stripcslashes($username));
足以防止malacious sql注入和其他类型的攻击。如果不是我还应该使用什么?
P.S。我想允许用户选择包含字母数字,空格和符号字符的用户名和密码(除了mysql语句中使用的引号或星号之外)。
答案 0 :(得分:2)
插入数据库时,请使用:
mysql_real_escape_string($_POST['username']);
输出到HTML时,请使用:
htmlspecialchars($_POST['username']);
答案 1 :(得分:2)
如果您的环境允许,请始终使用参数化查询以避免SQL注入http://pl.php.net/manual/en/mysqli.prepare.php
答案 2 :(得分:1)
使用string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )