2

$username = $_POST['username'];

$sanitizedUsername = strip_tags(stripcslashes($username));

足以防止恶意 sql 注入和其他类型的攻击。如果不是,我还应该使用什么?

PS 我想允许用户选择包含字母数字、空格和符号字符的用户名和密码(除了那些在 mysql 语句中使用的引号或星号)。

4

3 回答 3

2

插入数据库时​​,请使用:

mysql_real_escape_string($_POST['username']);

当您输出到 HTML 时,请使用:

htmlspecialchars($_POST['username']);

于 2010-03-25T21:15:31.560 回答
2

如果您的环境允许,请始终使用参数化查询以避免 SQL 注入http://pl.php.net/manual/en/mysqli.prepare.php

于 2010-03-25T21:26:18.220 回答
1

利用string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )

http://www.php.net/mysql_real_escape_string

于 2010-03-25T21:18:23.290 回答