Спустя 1 час, 8 минут, 2 секунды (30.11.2009 - 23:00) Гость_Dron19 написал(а):
Вот я запрограммировал авторизацию
Если есть уязвимости для взлома, то скажите!
<?
# запускаем сессии
session_start();
# подключаем MySQL
require "include/bd.php";
// Если существуют кукиБ то выполняем автовход!
if(isset($_COOKIE['auto']))
{
$nik = $_COOKIE['nik'];
$password = $_COOKIE['password'];
$_SESSION['nik'] = $nik;
$_SESSION['password'] = crc32(crypt(base64_encode(strrev(md5($password)))));
}
if(isset($_POST['auto'])) {
if(empty($nik) or empty($pass)) {die("<p>Какое то из полей не введено!</p><head><meta http-equiv='refresh' content='2; URL=javascript:history.back();'></head>");}
$result = mysql_query("SELECT nik,password FROM admin WHERE nik='$nik' and password='$pass'");
if(mysql_num_rows($result) > 0)
{
$auto = $_POST['auto'];
setcookie("auto","auto",time()+9999999);
setcookie("nik",$nik,time()+9999999);
setcookie("password",$pass,time()+9999999);
}
else
{
$result = mysql_query("SELECT nik,password FROM userlist WHERE nik='$nik' and password='$pass'");
if(mysql_num_rows($result) > 0)
{
$auto = $_POST['auto'];
setcookie("auto","auto",time()+9999999);
setcookie("nik",$nik,time()+9999999);
setcookie("password",$pass,time()+9999999);
}
else
{
die("<p>Введенные данные не верны!</p><head><meta http-equiv='refresh' content='2; URL=javascript:history.back();'></head>");
}
}
}
# если пользователь ввел данные, то проверяем их
if(isset($go))
{
# принимаем данные через POST
if (isset($_POST['nik'])) {$nik = $_POST['nik'];}
if (isset($_POST['pass'])) {$pass = $_POST['pass'];}
# проверяем нет ли пустых полей
if(empty($nik) or empty($pass))
{print "<script language='javascript'>alert('Вы попытались получить доступ к Чату, но замечено, что Вы не ввели какое-то из полей, пожалуйста заполните их!');</script>";}
# если их нет, то запрашиваем введенные данные из базы, если такие есть, то создаем сессии
$result = mysql_query("SELECT nik,password FROM admin WHERE nik='$nik' and password='$pass'");
if(mysql_num_rows($result) == 0)
{$result = mysql_query("SELECT nik,password FROM userlist WHERE nik='$nik' and password='$pass'");}
if(mysql_num_rows($result) > 0)
# так как сессии уязвимы от взлома и просмотра введенного в них, мы пять раз зашифровываем поле с паролем
# при всем при этом при каждом заходе пароль генерируется по новому
{
$_SESSION['nik'] = $nik;
$_SESSION['password'] = crc32(crypt(base64_encode(strrev(md5($pass)))));}
else {print "<script language='javascript'>alert('Вы попытались получить доступ к Чату, но те данные которые Вы ввели, не совподают с правильными! Пожалуйста введите правильные!');</script>";}}
# проверяем авторизован ли пользователь, если нет выдаем окошко авторизации
if( !isset($_SESSION['nik']) or !isset($_SESSION['password']) ) {
echo "<br><br><br><br><br><br><br>
<table bgcolor='#EAF3FF' width='300px' align='center' style='border:1px solid #000000; padding:10px;'>
<tr><td><strong>Вход</strong></td></tr><br>
<form method='post'><tr bgcolor='#F9F8FD'><td>
<div style='font-size:11px; font-family:Verdana; color:#424242;'>Ваш ник:</div></td><td>
<input style='border:1px solid #B3B9C3; font-size:12px;' type='text' name='nik'></td></tr>
<tr bgcolor='#F9F8FD'><td>
<div style='font-size:11px; font-family:Verdana; color:#424242;'>Ваш пароль:</div></td><td>
<input style='border:1px solid #B3B9C3; font-size:12px;' type='password' name='pass'></td></tr><tr><td>
<input type='checkbox' name='auto' checked> Автовход<br>
<input style='border:1px solid #000000; color:#3A4F6C; font-weight:700; padding:0px; background-color:#F0F5FA; margin-top:5px;' type='submit' name='go' value='Войти'></form>
</td>
</tr>
</table>
<br><table bgcolor='#EAF3FF' width='500px' align='center' style='border:1px solid #000000; padding:10px;'><tr align='center'><td><strong style='font-size:14px;'>Забыли пароль?</strong></td></tr><form method='post' action='newpass.php'><tr align='center'><td bgcolor='#F9F8FD' style='padding-bottom:7px;'><strong style='font-size:11px; font-family:Verdana;'>Введите Ваш email: </strong><input type='text' name='email' style='border:1px solid #B3B9C3; font-size:11px; font-family:Verdana; padding:1px; margin-top:5px;'> <input type='submit' style='border:1px solid #000000; color:#3A4F6C; font-weight:700; padding:0px; background-color:#F0F5FA; margin-top:5px;' name='newpass' value='Получить пароль!'></form></td></tr><tr><td align='center' style='font-size:11px; font-family:Verdana; color:#FF0000;'>* Вам на email будет выслан новый пароль!</td></tr></table>
";
exit();
}
?>
Если есть уязвимости для взлома, то скажите!
Спустя 2 часа, 21 минута, 3 секунды (1.12.2009 - 01:21) Gabriel написал(а):
читаем и латаем дырки
Спустя 13 часов, 45 минут, 10 секунд (1.12.2009 - 15:06) Dron19 написал(а):
Там ниче про мою ошибку не сказано!
Спустя 1 год, 4 месяца, 8 дней, 6 часов, 42 минуты, 21 секунда (9.04.2011 - 20:49) Mirexzpalich написал(а):
PHPSESSID - это индентификатор сессии. А сессии живут пока открыт браузер и то минут 20-30, если бездествуют.... После закрытия браузера у тебя закрывается сессия. Вот все ссылки и стоят по дефолту....
Делай автологин на куках
Делай автологин на куках
_____________
PHP+MySQL - уже изучил, осталось всего лишь это:
C,C++,C#,JavaScript,Python,Ruby,Perl,OpenGl,DirectX,ASP.NET - Намерен учить все