php用户名和密码验证安全代码

时间:2013-01-28 14:42:09

标签: php ajax

我正在使用WYSIWYG Webbuilder 8来构建一个网站。部分网站仅限访问注册用户。为此我创建了一个MySQL数据库。我也有一个注册表格。当新用户希望注册时,我希望根据数据库自动检查用户名,以确保它不存在。我打算使用AJAX函数来做这件事,因为WYSIWYG软件内置了这个选项。我需要自己构建这个,我正在努力的是AJAX命令将要进行的validate.php。

我现在有这样的事情(请原谅我的无知!):

<?php
$username = $_POST['data'];

// TODO: lookup username in database...
if ($username == 'user')
{
  echo "true";
}
else
{
  echo "false";
}
?>

我不知道这是否足够或安全。我一直在阅读一些关于sql注入和其他涉及使用表单的黑人艺术的可怕内容,如果可能的话我想避免陷阱。 有些灵魂请看看我的要求并帮助我吗?我不是任何一个想象力的程序员,我在这里超出了我的深度。 在此先感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您希望使用能够处理应用程序和数据库之间聊天的内容。今天可用的最好的工具之一是PDO库,特别是PDO-MySQL供您使用。它将使用参数化(准备好的)语句

为您处理转义和SQL注入问题

以下是连接数据库并在MySQL中发出查询的示例

$db = new PDO('mysql:host=localhost;dbname=dbname;charset=UTF-8', 'username', 'password');
$statement = $db->prepare('SELECT user_id FROM users WHERE username = :username LIMIT 1');
$statement->bindValue(':username', $_POST['data']);
$statement->execute();

if (false == $userId = $statement->fetchColumn()) {
    // No matching username was found in the database
} else {
    // A matching username was found in the database
    // $userId contains the matching user ID
}

知道如何将其传递回JS / AJAX集成可能取决于您使用的是什么框架(如果有的话)以及您想要哪种格式的数据