垃圾邮件发送者使用相同的自动增量ID再次注册

时间:2014-07-24 07:16:48

标签: php mysql security

我有一个小网站,用户可以通过HTML表单注册。 数据通过PHP存储在MySQL数据库中。 我经常手动删除记录中的垃圾邮件发送者。通常,当我fx删除条目222时, 注册的下一个用户/机器人获取ID 223,因为ID是自动增量。但是最近几天 一个机器人总是再次注册并获得相同的ID,即使它应该比以前更高。 知道他们如何成功吗?以及如何阻止这个? 谢谢!

编辑:这是(我的代码的一部分)

if ($_POST['process'] == 1) {
$varMail = $_POST['email'];
$varMail = strtolower($varMail);
$varCountry = $_POST['country'];
$varPwd = $_POST['pwd'];
$varConf = $_POST['pwdconf'];

if (isset($_POST['newsletter'])) {
  $newsletter = 1;
}

if ($varMail != '' && $varCountry != '' && $varPwd != '' && $varConf != '' && $varPwd == $varConf) {
try{
$stmt = $con->prepare("SELECT * FROM user WHERE username=:username AND status=1");
$stmt->bindParam(':username', $varMail, PDO::PARAM_STR);
$stmt->execute();
$row_count = $stmt->rowCount();
if ($row_count == 0) {
$varRandom = md5(rand());
$date = date('Y-m-d');
$pwd = SHA1($varPwd);
try{
$stmt = $con->prepare("INSERT INTO user(username, pwd, country, newsletter, status, random, registered) VALUES(:username, :pwd, :country, :newsletter, '0', :random, :date)");
$stmt->bindParam(':username', $varMail, PDO::PARAM_STR);
$stmt->bindParam(':pwd', $pwd, PDO::PARAM_STR);
$stmt->bindParam(':country', $varCountry, PDO::PARAM_STR);
$stmt->bindParam(':newsletter', $newsletter, PDO::PARAM_INT);
$stmt->bindParam(':random', $varRandom, PDO::PARAM_STR);
$stmt->bindParam(':date', $date, PDO::PARAM_STR);
$stmt->execute();

1 个答案:

答案 0 :(得分:0)

  

知道他们如何成功吗?

正如@sevenseacat所说,这取决于你的代码。

  

如何制止这个?

验证码