Хорошо, по сути, мой вопрос спрашивает, являются ли их основными угрозами безопасности, используя приведенный ниже сценарий входа, и если да, то что я могу использовать, чтобы предотвратить вхождение в мои службы SQL-запросов или пользователей без предоставления правильных сведений? Я понимаю, что я использую устаревшую версию PHP, но весь мой сайт построен на этой предыдущей версии, и я понимаю, что это создает риски, используя устаревшую сборку.Безопасен ли этот сценарий входа?
Войти Форма
<form method="post" action="login.php?login=login">
<input type='text' placeholder="username" class='form-control' name='username' required autofocus/>
<input type='password' placeholder="password" class='form-control' name='password' required/>
<input class='btn btn-default btn-block' type='submit' value='Login' class='submit' />
</form>
Форма Сообщение
<? if($login==login)
{
$username = clean($_POST[username]);
$password = md5($_POST[password]);
$date = date("Y-m-d");
$time = date("H:i:s");
$sql = mysql_query("select * from users where username = '$username' AND password = '$password'");
$check = mysql_num_rows($sql);
if($check!=1)
{
echo 'Incorrect username or password.';
echo('<meta http-equiv="refresh" content="3;url=/login" />');
$success = "Failed";
if($content[loginlog]==1)
$sqllog = mysql_query("insert into usr_logs(user, ip, time, date, success) values('$username', '$ip', '$time', '$date', '$success')");
}
else
{
$user = mysql_fetch_array($sql);
$_SESSION[usr_name] = $user[username];
$_SESSION[usr_level] = $user[level];
$_SESSION[usr_ip] = $ip;
$success = "Success";
echo('<meta http-equiv="refresh" content="1;url=/home" />');
if($content[loginlog]==1)
$sqllog = mysql_query("insert into usr_logs(user, ip, time, date, success) values('$username', '$ip', '$time', '$date', '$success')");
}
}
if($login==logout)
{
session_unset();
session_destroy();
echo 'logged out';
echo('<meta http-equiv="refresh" content="3;url=/login" />');
}?>
Спасибо за помощь мне улучшить безопасность моего кода и предотвращая любые инъекции SQL.
Я голосующий, чтобы закрыть этот вопрос не по теме, потому что вопросы о качестве рабочего кода обычно принадлежат [codereview] (http://codereview.stackexchange.com/help/on-topic) – Quentin
Есть много ужасных вещей об этом коде, и функция 'clean' (которая фактически делает вещи, о которых вы в первую очередь спрашиваете!) полностью отсутствует. – Quentin
Где/что такое 'clean()'? – jDo