|
| |
|
|
| |
для: provodnik
(14.01.2007 в 15:58)
| | |
$admins = mysql_query("SELECT * FROM admin WHERE login = '". addslashes($_SESSION['login'])."' AND password = '".md5($_SESSION['password'])."'");
|
| |
| |
|
|
| |
|
|
| |
для: Sergey89
(14.01.2007 в 13:58)
| | | >Зачем так длинно? Достаточно:
>
$login = addslashes($_POST['login']);
>$password = md5($_POST['password']);
|
А это делать, при вводе админом данных в базу? или когда проверяешь переменные , которые пришли из формы ? Или в обоих случаях? | |
| |
|
|
| |
|
|
| |
для: provodnik
(10.01.2007 в 01:12)
| | |
$login = htmlspecialchars(stripslashes($_POST['login']), ENT_QUOTES);
$password = md5(htmlspecialchars(stripslashes($_POST['password']), ENT_QUOTES));
|
Зачем так длинно? Достаточно:
$login = addslashes($_POST['login']);
$password = md5($_POST['password']);
|
| |
| |
|
|
|
| |
|
|
| |
для: provodnik
(10.01.2007 в 01:12)
| | | Господа кодеры - подскажите автору. Просто сам ищу повозможности готовый код авторизации. И в этой теме как нельзя подробно всё расписано, за исключением сообщения выше.
Хотелось бы "доработать" данный код, для дальнейшего использования его на сайте. Может в нем есть еще какие нибудь уязвимые места? | |
| |
|
|
| |
|
|
| |
для: provodnik
(09.01.2007 в 21:33)
| | | Всем спасибо за оказанное содействие начинающему...
Теперь буду вставлять ваши примеры кодов и тестировать.
Спасибо... (((
Добавляю после тестирования:
Сразу попрошу прощения у администраторов и пользователей за большие куски кода...
Вот код файла админ профиля ( "заливателя" в базу):
<?
if(isset($_POST['login']))
{ if($_POST['login'] != "" && $_POST['password'] != "")
{ $_POST['login'] = str_replace('"', '"', $_POST['login']);
$_POST['login'] = htmlspecialchars(stripslashes($_POST['login']), ENT_QUOTES);
$_POST['password'] = str_replace('"', '"', $_POST['password']);
$_POST['password'] = md5(htmlspecialchars(stripslashes($_POST['password']), ENT_QUOTES));
$change = mysql_query("UPDATE admin SET login = '". $_POST['login'] ."', password = '". $_POST['password'] ."'");
}
}
if(isset($_GET['op']) && $_GET['op'] == "edit")
{ $profile = mysql_query("SELECT * FROM admin");
if(mysql_numrows($profile) == 1)
{ $profile = mysql_fetch_array($profile);
if(isset($_POST['login'])) $_POST['login'] = str_replace('"', '"', $_POST['login']);
$profile['login'] = str_replace('"', '"', $profile['login']);
$profile['login'] = htmlspecialchars(stripslashes($profile['login']), ENT_QUOTES);
if(isset($_POST['password'])) $_POST['password'] = str_replace('"', '"', $_POST['password']);
$profile['password'] = str_replace('"', '"', $profile['password']);
$profile['password'] = htmlspecialchars(stripslashes($profile['password']), ENT_QUOTES);
echo "<form method=post action=\"http://". $_SERVER['HTTP_HOST'] ."/admin/profile/\">";
echo "Редактировать данные владельца";
echo "Логин - <input size=50 name=login type=text value=\"". $profile['login'] ."\">
Пароль - <input size=50 name=password type=text value=\"". $profile['password'] ."\">
<input type=submit value=\"Изменить\"></form>";
} else echo "Ошибка!";
}
else
{ $profile = mysql_query("SELECT * FROM admin");
if(mysql_numrows($profile) == 1)
{ $profile = mysql_fetch_array($profile);
echo "Данные админа";
echo "Логин - ". $profile['login'] ."
Пароль - ". $profile['password'] ."
<a href=\"http://". $_SERVER['HTTP_HOST'] ."/admin/profile/edit/\">Изменить данные</a>";
} else echo "Ошибка!";
}
?>
|
Теперь код страницы admin.php:
<?
session_start();
include("mysql.php"); //файл с переменными для коннекта к базе
include("config.php"); //файл с переменными для управления сайтом
$title = "Панель администратора";
include("design/top.inc.php"); // шапчёнка
if($_GET['action'] == "logout"){
if(isset($_SESSION['login']) && isset($_SESSION['password'])) {
session_unregister("login");
session_unregister("password");
}
}
if(isset($_POST['login']) && isset($_POST['password']) && !isset($_SESSION['login']) && !isset($_SESSION['password'])) {
//это было
//$admins = mysql_query("SELECT * FROM admin WHERE login = '". $_POST['login']."' AND password = '". $_POST['password']."'");
//стало теперь:
$admins = mysql_query("SELECT * FROM admin WHERE login = '". htmlspecialchars(stripslashes($_POST['login']))."' AND password = '".md5(htmlspecialchars(stripslashes($_POST['password'])))."'");
if(mysql_numrows($admins) == 1) {
//это было
// $login = $_POST['login'];
// $password = $_POST['password'];
//стало теперь:
$login = htmlspecialchars(stripslashes($_POST['login']), ENT_QUOTES);
$password = md5(htmlspecialchars(stripslashes($_POST['password']), ENT_QUOTES));
session_register("login");
session_register("password");
}
else echo "<center>Данные не верны!<br><br></center>
$admin_login_form"; // форма
}
else if(!isset($_SESSION['login']) && !isset($_SESSION['password']))
echo $admin_login_form;
if(isset($_SESSION['login']) && isset($_SESSION['password'])) {
//это было
//$admins = mysql_query("SELECT * FROM admin WHERE login = '". $_SESSION['login']."' AND password = '". $_SESSION['password']."'");
//стало теперь:
$admins = mysql_query("SELECT * FROM admin WHERE login = '". htmlspecialchars(stripslashes($_SESSION['login']))."' AND password = '".md5(htmlspecialchars(stripslashes($_SESSION['password'])))."'");
if(mysql_numrows($admins) == 1) {
if($_GET['action'] == "content") echo "<a href=\"http://". $_SERVER['HTTP_HOST'] ."/admin/content/\">Контент</a>"; // используется мод реврайт
if($_GET['action'] == "catalog") echo "<a href=\"http://". $_SERVER['HTTP_HOST'] ."/admin/catalog/\">Каталог</a>"; // используется мод реврайт
if($_GET['action'] == "profile") echo "<td width=25% align=center><b class=\"no_underline\">Сменить пароль</b></td>"; // используется мод реврайт
echo "<a href=\"http://". $_SERVER['HTTP_HOST'] ."/admin/logout/\">Выйти</a>"; // используется мод реврайт
echo "<br><br>";
if(isset($_GET['action'])) {
if($_GET['action'] == "content") include("admin/content.php");
if($_GET['action'] == "catalog") include("admin/catalog.php");
if($_GET['action'] == "profile") include("admin/profile.php");
}
} else echo "Данные не верны!
<br><br>
$admin_login_form";
}
include("design/foot.inc.php"); // подвальчик
?>
|
Дамп таблицы:
INSERT INTO `admin` VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3');
|
Никак не могу найти ошибку. Постоянно выводит - Данные не верны!
Прошу меня "тыкнуть носом".
Еще раз прошу простить за постинг кода...
Заранее спасибо... | |
| |
|
|
| |
|
|
| |
для: provodnik
(10.01.2007 в 00:47)
| | |
INSERT INTO (name, password) VALUE ($_POST['n'], $_POST['p']);
|
| |
| |
|
|
| |
|
|
| |
для: colix
(10.01.2007 в 00:32)
| | | Вот толь нюанс один ( :
у меня ручками была занесена строка в базу, с админ аккаунтом ( она там единственная)
Другими словами: как же мне занести "всё это дело" в базу то? ( | |
| |
|
|
| |
|
|
| |
для: Poison
(10.01.2007 в 00:20)
| | | Так?
$password = md5(htmlspecialchars(stripslashes($_POST['password']), ENT_QUOTES));
|
| |
| |
|
|
| |
|
|
| |
для: colix
(10.01.2007 в 00:14)
| | | Не так=)) Ты сначала создаешь хеш а потом убираешь все теги, которые посути та уже в хеше | |
| |
|
|
|