如何使用php命令使注册表格高度安全?

时间:2014-03-28 12:00:42

标签: php mysql database security

我希望为用户提供真正安全的代码。下面的代码显示了

的PHP代码

我已将它用于我的网站。现在我使用了一些验证,如密码和repeatPassword必须匹配,用户必须输入所有字段。

为了使其更安全,我想插入安全命令,如PDO,mysqli,crypto或MD5

但我不知道如何,因为我有新的PHP。

我该怎么做?

我的代码在这里:

 <?php       
      include"config.php";
  if (isset($_POST['submit']))
{
    $user_name = $_POST['name']; 
    $user_surname = $_POST['surname']; 
    $user_email = $_POST['email']; 
    $user_academic = $_POST['academic_institute']; 
    $user_username = $_POST['username']; 
    $user_pass = ($_POST['password']); 
    $user_pass2 = ($_POST['repeatPassword']); 

    if($user_name && $user_username)
        {
    if($user_pass==$user_pass2)
    {
  $query = mysql_query("INSERT INTO members (name, surname, email, academic_institute,   username, password, repeatPassword) 
   VALUES ('$user_name', '$user_surname', '$user_email', '$user_academic',     '$user_username', '$user_pass', '$user_pass2')");
   mysql_query($query); 


 echo '<script type="text/javascript">alert("You have been registered");</script>';
    }
    else
    {
        echo '<script type="text/javascript">alert("Password must match");</script>';
    }
}
else {
        echo '<script type="text/javascript">alert("All fields required");</script>';
}
  }
   ?>

1 个答案:

答案 0 :(得分:5)

不是“真实”的答案,但对于评论部分来说太长了,所以我会将其迁移到答案:

我原来的评论(略有改进)

您可能希望从:How can I prevent SQL injection in PHP?

开始

然后继续:Secure hash and salt for PHP passwords

然后你想修复你的代码风格。样式良好的代码更易于阅读。易于阅读的代码更容易理解。并且您理解代码越好,您就可以更好地推断安全性(或者,实际上,通常是正确性)。

另外,请确保通过SSL连接为网站提供服务。

您的回复

  

@Carpetsmoker,您能否快速编辑我的代码并尝试确保其安全。我看了你给我的链接。由于我是php新手,我很难理解。如果您有时间,请快速编辑我的代码。谢谢 -

我的回复

对不起,但没有:-)
这不是一个'请写我的代码'网站,你真的必须自己做。

不要误会我的意思,我真的很感激这项任务令人生畏,并且你正在努力把握所有的概念。我做了很多苦苦挣扎,有时仍然这样做,但(不幸的是)这是学习过程的一部分。我知道别无他法。

首先,请记住这两个链接只是起点,它指出了您可以改进的内容。随意做更多研究,搜索互联网等。

其次,一次修复一件事。因此,首先要集中精力解决SQL问题,当您对其进行排序时,请继续进行密码散列,当您对其进行排序时,请转到SSL。

你的回复是在我的评论后约15分钟发出的;你应该期望投入几天,这不是一个简单的问题,你可以通过简单的代码行修复。如果你想要正确地做,你需要掌握更深层次的概念。

坚持下去!不要失去希望!所有程序员都在努力!如果您遇到问题/无法解决问题,请不要害怕在StackOverflow上询问更多(特定)问题。请记住,在所有这些结束时,你将成为一个更好的程序员。这几天的投资将终身受益!