Ситуация чтоб понятно было:
1) Есть AppServ(Apache+PHP5)
2) Есть MySQL
3) Есть зона сайта которую необходимо защитить
Я хочу:
1) Скрипт состоящий из 2х скриптов. Первый - скрипт защиты, вставляемый на те страницы которые необходимо защитить, с ссылкой на 2й скрипт. 2й скрипт с обозначением базы данных, пароля и логина к ней.
2) 1й скрипт должен проверять пользователя в БД (MySQL) и запоминать его на период всей сессии.
3) Шифтроваться пароли должны md5
Во что надо)
11. Kizim - 16 Апреля, 2008 - 02:40:47 - перейти к сообщению
12. Systemnik - 16 Апреля, 2008 - 04:48:15 - перейти к сообщению
гыыы мне лень такое писать)))
Ладн.. соображу че нить..
PS надеюсь на сервере register_globals = off ??
Чуть подожди напрограммирую..
Ладн.. соображу че нить..
PS надеюсь на сервере register_globals = off ??
Чуть подожди напрограммирую..
13. Kizim - 16 Апреля, 2008 - 04:54:28 - перейти к сообщению
Регистрацию не надо разрешать, нужно чтоб он из базы логины ипароли брал, которые я буду в базу пихать
14. Furax - 16 Апреля, 2008 - 05:11:45 - перейти к сообщению
Kizim
Идея такая: в начале каждой страницы проверяем наличие переданных POST-переменных логина и пароля. Если они есть, ищем соответствие в базе, если не найдено - ошибка. Если есть соответствие - заполняем ещё одно поле в базе (временный пароль), которое очистится, скажем, через 10 минут после последнего запроса от этого пользователя. Идентификатор пользователя и временный пароль сохраняем в куках, даём доступ к странице. Можно добавить в базу ещё пару полей - браузер и IP, для повышения стойкости.
Если нет пост-переменных, проверяем наличие куков. Если есть куки - ищем юзера с такими id и временным паролем (и, если угодно, браузером и IP). Нашли - входим, обновив последнее время захода (чтобы потом сбросить временный пароль и так завершить сессию). Если нет такого юзера - ошибка.
Если нет и куков - выдаём форму входа и закругляемся.
В принципе, алгоритм простой. не думаю, что с кодированием возникнут проблемы.
Идея такая: в начале каждой страницы проверяем наличие переданных POST-переменных логина и пароля. Если они есть, ищем соответствие в базе, если не найдено - ошибка. Если есть соответствие - заполняем ещё одно поле в базе (временный пароль), которое очистится, скажем, через 10 минут после последнего запроса от этого пользователя. Идентификатор пользователя и временный пароль сохраняем в куках, даём доступ к странице. Можно добавить в базу ещё пару полей - браузер и IP, для повышения стойкости.
Если нет пост-переменных, проверяем наличие куков. Если есть куки - ищем юзера с такими id и временным паролем (и, если угодно, браузером и IP). Нашли - входим, обновив последнее время захода (чтобы потом сбросить временный пароль и так завершить сессию). Если нет такого юзера - ошибка.
Если нет и куков - выдаём форму входа и закругляемся.
В принципе, алгоритм простой. не думаю, что с кодированием возникнут проблемы.
15. Systemnik - 16 Апреля, 2008 - 05:12:57 - перейти к сообщению
Имя скрипта должно быть script.php
а имя конфига config.php
Код файла config.php
Код файла script.php
Так на всякий пожарный Дампы таблицы..
а имя конфига config.php
Код файла config.php
CODE:
<?php
$mysql_server = "ваш мускул сервер";
$mysql_user = "ваш мускул юзер";
$mysql_pass = "ваш мускул пасс";
$mysql_dbname = "имя вашей бд";
$mysql_table = "имя таблицы с данными юзеров";
?>
$mysql_server = "ваш мускул сервер";
$mysql_user = "ваш мускул юзер";
$mysql_pass = "ваш мускул пасс";
$mysql_dbname = "имя вашей бд";
$mysql_table = "имя таблицы с данными юзеров";
?>
Код файла script.php
CODE:
<?php
include("config.php");
$userlogin = $_POST['userlogin'];
$userpass = md5($_POST['userpass']);
$idcon = @mysql_connect($mysql_server, $mysql_user, $mysql_pass);
@mysql_select_db($mysql_dbname);
if($_POST['page'] == "auth")
{
$sql = @mysql_query("SELECT * FROM `$mysql_table` WHERE `username` = '$userlogin' LIMIT 1");
if(mysql_num_rows($sql) != 0)
{
$userinfo = @mysql_fetch_row($sql);
if($userinfo[1] == $userpass)
{
echo("Вы залогинены");
} else {
echo("Неверный пароль");
}
} else {
echo("Введенный вами пользователь несуществует!!!");
}
@mysql_close($idcon);
}
echo('
<form action="script.php" method="post">
<input name="page" type="hidden" value="auth">
<input name="userlogin" type="text" value="Имя юзера"><br>
<input name="userpass" type="text" value="Пароль"><br>
<input type="submit" value="Проверить">
</form>');
?>
include("config.php");
$userlogin = $_POST['userlogin'];
$userpass = md5($_POST['userpass']);
$idcon = @mysql_connect($mysql_server, $mysql_user, $mysql_pass);
@mysql_select_db($mysql_dbname);
if($_POST['page'] == "auth")
{
$sql = @mysql_query("SELECT * FROM `$mysql_table` WHERE `username` = '$userlogin' LIMIT 1");
if(mysql_num_rows($sql) != 0)
{
$userinfo = @mysql_fetch_row($sql);
if($userinfo[1] == $userpass)
{
echo("Вы залогинены");
} else {
echo("Неверный пароль");
}
} else {
echo("Введенный вами пользователь несуществует!!!");
}
@mysql_close($idcon);
}
echo('
<form action="script.php" method="post">
<input name="page" type="hidden" value="auth">
<input name="userlogin" type="text" value="Имя юзера"><br>
<input name="userpass" type="text" value="Пароль"><br>
<input type="submit" value="Проверить">
</form>');
?>
Так на всякий пожарный Дампы таблицы..
CODE:
CREATE TABLE IF NOT EXISTS `script_users` (
`username` varchar(100) character set cp1251 collate cp1251_bin NOT NULL default '',
`userpass` text character set cp1251 collate cp1251_bin NOT NULL,
PRIMARY KEY (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
INSERT INTO `script_users` (`username`, `userpass`) VALUES
('ваш юзер', 'ваш md5');
`username` varchar(100) character set cp1251 collate cp1251_bin NOT NULL default '',
`userpass` text character set cp1251 collate cp1251_bin NOT NULL,
PRIMARY KEY (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
INSERT INTO `script_users` (`username`, `userpass`) VALUES
('ваш юзер', 'ваш md5');
16. Systemnik - 16 Апреля, 2008 - 05:33:17 - перейти к сообщению
Цитата:
Регистрацию не надо разрешат
Какую регистрацию??
17. Kizim - 16 Апреля, 2008 - 07:14:15 - перейти к сообщению
Вот это тебе спасибо) Последний вопрос - как делать ключи в мд5?)) какой прогой?
18. Kizim - 16 Апреля, 2008 - 07:28:26 - перейти к сообщению
index.php:
показывает:
почему он дает доступ дальше? я понять не могу. он по идее же должен тормозиться на script.php пока не введешь логин и парольЖ( жесть нах
CODE:
<?php
include "script.php";
include "config.php";
$connect = mysql_connect($mysql_server, $mysql_user, $mysql_pass);
if ($connect){
echo "Congratulations!\n<br>";
echo "Successfully connected to MySQL database server.\n<br>";
}else{
$error = mysql_error();
echo "Could not connect to the database. Error = $error.\n<br>";
exit();
}
// Closing connection
$close = mysql_close($connect);
if ($close){
echo "\n<br>";
echo "Now closing the connection...\n<br>";
echo "MySQL connection closed successfully as well.\n<br>";
}else{
echo "There's a problem in closing MySQL connection.\n<br>";
}
exit();
?>
include "script.php";
include "config.php";
$connect = mysql_connect($mysql_server, $mysql_user, $mysql_pass);
if ($connect){
echo "Congratulations!\n<br>";
echo "Successfully connected to MySQL database server.\n<br>";
}else{
$error = mysql_error();
echo "Could not connect to the database. Error = $error.\n<br>";
exit();
}
// Closing connection
$close = mysql_close($connect);
if ($close){
echo "\n<br>";
echo "Now closing the connection...\n<br>";
echo "MySQL connection closed successfully as well.\n<br>";
}else{
echo "There's a problem in closing MySQL connection.\n<br>";
}
exit();
?>
показывает:
CODE:
Ваш логин
пароль
Проверить
Congratulations!
Successfully connected to MySQL database server.
Now closing the connection...
MySQL connection closed successfully as well.
Ваш логин
пароль
Проверить
Congratulations!
Successfully connected to MySQL database server.
Now closing the connection...
MySQL connection closed successfully as well.
почему он дает доступ дальше? я понять не могу. он по идее же должен тормозиться на script.php пока не введешь логин и парольЖ( жесть нах
19. Kizim - 16 Апреля, 2008 - 07:53:40 - перейти к сообщению
index.php поправил так:
script.php так:
Вроде все норм...
Мож где накосячил
Открыт вопрос про md5 генерацию
CODE:
<?php
include "script.php";
include "config.php";
$authok=0;
if($authok==1)
{
$connect = mysql_connect($mysql_server, $mysql_user, $mysql_pass);
if ($connect){
echo "Congratulations!\n<br>";
echo "Successfully connected to MySQL database server.\n<br>";
}else{
$error = mysql_error();
echo "Could not connect to the database. Error = $error.\n<br>";
exit();
}
// Closing connection
$close = mysql_close($connect);
if ($close){
echo "\n<br>";
echo "Now closing the connection...\n<br>";
echo "MySQL connection closed successfully as well.\n<br>";
}else{
echo "There's a problem in closing MySQL connection.\n<br>";
}
exit();
}
?>
include "script.php";
include "config.php";
$authok=0;
if($authok==1)
{
$connect = mysql_connect($mysql_server, $mysql_user, $mysql_pass);
if ($connect){
echo "Congratulations!\n<br>";
echo "Successfully connected to MySQL database server.\n<br>";
}else{
$error = mysql_error();
echo "Could not connect to the database. Error = $error.\n<br>";
exit();
}
// Closing connection
$close = mysql_close($connect);
if ($close){
echo "\n<br>";
echo "Now closing the connection...\n<br>";
echo "MySQL connection closed successfully as well.\n<br>";
}else{
echo "There's a problem in closing MySQL connection.\n<br>";
}
exit();
}
?>
script.php так:
CODE:
<?php
include("config.php");
$userlogin = $_POST['userlogin'];
$userpass = md5($_POST['userpass']);
$idcon = @mysql_connect($mysql_server, $mysql_user, $mysql_pass);
@mysql_select_db($mysql_dbname);
if($_POST['page'] == "auth")
{
$sql = @mysql_query("SELECT * FROM `$mysql_table` WHERE `username` = '$userlogin' LIMIT 1");
if(mysql_num_rows($sql) != 0)
{
$userinfo = @mysql_fetch_row($sql);
if($userinfo[1] == $userpass)
{
echo("Вы залогинены");
$authok = 1;
} else {
echo("Неверный пароль");
}
} else {
echo("Введенный вами пользователь несуществует!!!");
}
@mysql_close($idcon);
}
echo('
<form action="script.php" method="post">
<input name="page" type="hidden" value="auth">
<input name="userlogin" type="text" value="Имя юзера"><br>
<input name="userpass" type="text" value="Пароль"><br>
<input type="submit" value="Проверить">
</form>');
?>
include("config.php");
$userlogin = $_POST['userlogin'];
$userpass = md5($_POST['userpass']);
$idcon = @mysql_connect($mysql_server, $mysql_user, $mysql_pass);
@mysql_select_db($mysql_dbname);
if($_POST['page'] == "auth")
{
$sql = @mysql_query("SELECT * FROM `$mysql_table` WHERE `username` = '$userlogin' LIMIT 1");
if(mysql_num_rows($sql) != 0)
{
$userinfo = @mysql_fetch_row($sql);
if($userinfo[1] == $userpass)
{
echo("Вы залогинены");
$authok = 1;
} else {
echo("Неверный пароль");
}
} else {
echo("Введенный вами пользователь несуществует!!!");
}
@mysql_close($idcon);
}
echo('
<form action="script.php" method="post">
<input name="page" type="hidden" value="auth">
<input name="userlogin" type="text" value="Имя юзера"><br>
<input name="userpass" type="text" value="Пароль"><br>
<input type="submit" value="Проверить">
</form>');
?>
Вроде все норм...
Мож где накосячил
Открыт вопрос про md5 генерацию
20. Systemnik - 16 Апреля, 2008 - 08:23:38 - перейти к сообщению
Какую md5 генерацию.. я ведь тебе написал куда md5 хеш готовый вставлять...
есть ли хочеш сгенрировать md5 вот тебе линк http://systemnik.alfaspace.net
моя хоум пага.. слева.. есть блок туда вводи любое слово.. и нажми кнопочку скрипт выдаст хеш..
Зы приходи ко мне на форум http://forum.systemnik.alfaspace.net
там тоже че нить спрашивай (реклама - двигатель прогресса )
А если серьезно...
Код файла md5.php
есть ли хочеш сгенрировать md5 вот тебе линк http://systemnik.alfaspace.net
моя хоум пага.. слева.. есть блок туда вводи любое слово.. и нажми кнопочку скрипт выдаст хеш..
Зы приходи ко мне на форум http://forum.systemnik.alfaspace.net
там тоже че нить спрашивай (реклама - двигатель прогресса )
А если серьезно...
Код файла md5.php
CODE:
<html>
<head>
<title>
md5 hash's generator by Systemnik :)
</title>
</head>
<body>
<form action="md5.php">
<input type="text" name="textomd5" value="Символы">
<input type="submit" value="Сгенерировать">
</form>
<?php
echo(md5($_GET['textomd5']));
?>
</body>
</html>
<head>
<title>
md5 hash's generator by Systemnik :)
</title>
</head>
<body>
<form action="md5.php">
<input type="text" name="textomd5" value="Символы">
<input type="submit" value="Сгенерировать">
</form>
<?php
echo(md5($_GET['textomd5']));
?>
</body>
</html>