我只是想问一下这是否是让用户选择用户名的安全方式(用户可以使用每个数字):
if($_POST['username'] != "") {
$username = trim($_POST['username']);
$username = filter_var($username, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
}
在此片段之后,我使用PDO(预准备语句)在数据库中插入数据。
你认为这足够安全还是我忘了一些重点?
答案 0 :(得分:1)
根据PHP Documentation - Filter flags:
FILTER_FLAG_STRIP_LOW剥离数值<32
的字符
此选项适用于用户名验证,但是,为了防止SQL注入攻击,您应该使用参数化预准备语句(使用占位符)以获取更多信息,请参阅本教程:https://stackoverflow.com/tags/pdo/info和How can I prevent SQL injection in PHP? < / p>
因为不使用占位符,即使您使用预准备语句,服务器也不会转义用户输入数据。
答案 1 :(得分:0)
$username = addslashes($_POST['username']);
也许想要搜索有关SQL注入的一些信息。