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