|
|
|
| Здравствуйте, хотел бы выразить большую благодарность создателем данного ресурса, и авторам замечательных книг (Головоломки на PHP для хакера, PHP 5 практика разработки Web-сайтов), на которых можно сказать и учусь программировать в данной сфере :-)
Вообщем респект ВАМ )
Написал авторизацию на сессиях: при условии что в бд пароль юзера храниться в md5
<?
session_start();
//если нажали кнопку
if ($_POST[\'sub\'])
{
require_once(\"config.php\");
//проверяем данные на sql-inj
$login = mysql_escape_string($_POST[\'login\']);
$passw = mysql_escape_string($_POST[\'passw\']);
$result = mysql_query(\"select * from user where login=\'$login\'\");
$data = mysql_fetch_assoc($result);
if (mysql_num_rows($result)>0)
{
if ($data[\'passw\'] == md5($passw))
{
//устанавливаем sessie
$_SESSION[\'login\'] = $data[\'login\'];
$_SESSION[\'passw\'] = $data[\'passw\'];
echo \"Привет \".$data[\'login\'].\" Работает Сессия\";
}
else echo \"Пароль неверен\";
}
}
//если сессия заполнена
if ( (isset($_SESSION[\'login\'])) && (isset($_SESSION[\'passw\'])) )
{
require_once(\"config.php\");
//находим в БД пользователя удовлетворяющего сессиям
$result = mysql_query(\"select * from user where login=\'\".$_SESSION[\'login\'].\"\' AND passw=\'\".$_SESSION[\'passw\'].\"\'\");
//если такой пользователь существует
if (mysql_num_rows($result) == 1)
{
$data = mysql_fetch_assoc($result);
//выводим на экран имя юзера :-)
echo \"<p>Привет <b>\".$data[\'login\'].\"</b> Работает Сессия</p>\";
}
//если в БД нету такого пользователя то обнуляем кукисы и переходи к авторизации
else
{
echo \"А подделывать нехорошо\";
unset($_SESSION[\'login\']);
unset($_SESSION[\'passw\']);
echo \"<head><meta http-equiv=\'refresh\' content=\'1 url=index.php\'></head>\";
}
}
else
echo \"<form method=\'post\'>
<table rules=\'all\'>
<tr><td colspan=\'2\' align=\'center\'><b>Авторизация</b></td></tr>
<tr><td>Ваш логин</td><td><input type=\'text\' name=\'login\'></td></tr>
<tr><td>Ваш пароль</td><td><input type=\'password\' name=\'passw\'></td></tr>
<tr><td colspan=\'2\' align=\'center\'><input type=\'submit\' name=\'sub\' value=\'Отправить\'></td></tr>
</table>
</form>\";
?>
|
хотелось бы спросить:
1) Возможно ли обойти данную защиту ?
2) Что можно в ней подправить, что б она была более защищена от различных атак ? | |
|
|