我想让代码对用户真正安全。下面的代码显示了
我已经用它为我的网站。现在我已经使用了一些验证,如密码和重复密码必须匹配,用户必须输入所有字段。
为了使其更安全,我想插入安全命令,如PDO, mysqli, crypto或MD5
但我不知道如何,因为我有新的php。
我该怎么做呢?
My Code is here:
<?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>';
}
}
?>
不是一个"正确"的答案,但是对于评论部分来说太长了,所以我将其迁移到一个答案:
我的原始评论(稍微改进)
你可能想从:如何在PHP中防止SQL注入开始?
然后继续:Secure hash And salt for PHP密码
然后你想要修正你的代码风格。风格良好的代码更容易阅读。易读的代码更容易理解。你对代码理解得越好,你就能更好地推断出安全性(或者,实际上是正确性)。
还要确保通过SSL连接提供站点。
你的回复
@Carpetsmoker,你能快速编辑我的代码并尽量使其安全吗?我看了你给我的链接。因为我是新的php,我正在努力理解。如果你有时间,你可以快速编辑我的代码。谢谢-
我的回答
我很抱歉,但没有:-)
这不是一个"请写我的代码"的网站,你真的必须自己做。
不要误会我的意思,我真的很明白这个任务可能会让人望而生畏,而且你正在努力掌握所有的概念。我做了很多努力,有时仍然会这样,但(不幸的是)这是学习过程的一部分。我不知道还有什么别的办法。
首先,记住这两个链接只是起点指出你可以改进的地方。请放心多做研究,上网搜索等。
第二,一次修复一件事。因此,首先集中精力解决SQL问题,当你把它排序后,继续进行密码散列,当你把它排序后,继续进行SSL。
你的回复在我评论后大约15分钟;您应该准备投入几天的时间,这不是一个简单的问题,您可以通过一行简单的代码来解决。如果你想正确地做这件事,你需要掌握更深层次的概念。
坚持!不要失去希望!所有的程序员都在挣扎!如果你有问题/不能弄清楚一些事情,不要害怕在StackOverflow上问更多(具体)问题。记住,在这一切结束的时候,你会成为一个更好的程序员。这几天的投资会让你受益终生!