我有一个使用PHP Codeigniter框架构建的网站。它有一个用户管理系统。通常,它的作用是,当用户注册时,它将他的信息添加到数据库并发送一个确认电子邮件(就像其他系统一样)。
但现在一些垃圾邮件发送者正在创建大量帐户。他们不会验证电子邮件。只需向数据库添加更多记录即可。但是,我的数据库变得越来越重。我该如何防止这种情况?
是否有任何工作流程可以在确认电子邮件后添加用户?
提前致谢。
答案 0 :(得分:3)
有许多解决方案,但没有一个是完美的或100%有效的:/
答案 1 :(得分:2)
在成功确认邮件后无法插入用户您可以按照某些步骤限制用户
答案 2 :(得分:2)
PDO 准备好的陈述 验证功能
$result = Database::getInstance()->query("SELECT * FROM user ORDER BY id DESC WHERE 1");
这应该为您提供最后一个数据库条目 现在您应该读出验证状态并删除未验证的用户或添加veriefied用户
在您的数据库类中,您应该有一个功能,可以构建您的SQL查询并构建一个包含您要注入的值的数组
public function query($query, array $parameters = array())
{
$statement = $this->connection->prepare($query);
foreach($parameters as $key => $value)
{
$statement->bindValue(':'.$key, $value);
}
$statement->execute();
return $statement->fetchAll(PDO::FETCH_ASSOC);
}
答案 3 :(得分:0)