Php用户名过滤/验证

时间:2014-04-06 21:38:44

标签: php security pdo

我只是想问一下这是否是让用户选择用户名的安全方式(用户可以使用每个数字):

if($_POST['username'] != "") {
    $username = trim($_POST['username']);
    $username = filter_var($username, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
}

在此片段之后,我使用PDO(预准备语句)在数据库中插入数据。

你认为这足够安全还是我忘了一些重点?

2 个答案:

答案 0 :(得分:1)

根据PHP Documentation - Filter flags

  

FILTER_FLAG_STRIP_LOW剥离数值<32

的字符

此选项适用于用户名验证,但是,为了防止SQL注入攻击,您应该使用参数化预准备语句(使用占位符)以获取更多信息,请参阅本教程:https://stackoverflow.com/tags/pdo/infoHow can I prevent SQL injection in PHP? < / p>

因为不使用占位符,即使您使用预准备语句,服务器也不会转义用户输入数据。

答案 1 :(得分:0)

$username = addslashes($_POST['username']);

也许想要搜索有关SQL注入的一些信息。