Логотип игрового форума RF-Cheats.ru    
Новости онлайн игр Гарант RF-Cheats.ru Чёрный рынок Реклама и привилегии Разработка читов Арбитраж

Регистрация Бан-лист Сообщество ПОПУЛЯРНОЕ
Вернуться   RF-Cheats.ru - форум читеров и ботоводов > > >

Взлом и программирование

: Аспекты программирования при реализации различных методик взлома.
Читы и обход фроста для RF Online без хайдаБоты и читы для Perfect World бесплатно без хайдаМоды и читы для World of Tanks (WoT) бесплатно без хайдаМоды и читы для Armored Warfare бесплатно без хайдаБоты и читы для DOTA 2 бесплатно без хайдаБоты и читы для Black Desert Online бесплатно без хайдаЧиты на ArcheAge бесплатно без хайдаЧиты для Warface бесплатно без хайдаВзлом ВКонтакте и ОдноклассниковСписок разделов со всеми играмиЧиты для онлайн игр






Ответ
 
Опции темы
Старый 01.04.2013, 19:49   #1
dark
Читодел
Аватар для dark
OFFLINE
Регистрация: 09.04.2007
Сообщений: 965
Благодарностей:
36,566 всего
Мнения: + 37520
Репутация: 116361
Отправить сообщение для dark с помощью ICQ Отправить сообщение для dark с помощью Skype™

Личный кабинет на PHP


Раздел по чистому программированию давно удалён, поэтому создаю тему тут.
В общем появилась задача сделать личный кабинет. То есть стандартные функции:
1. авторизация
2. регистрация
3. вост. пароля
4. ну и соответственно держать сессию по кукам
Функции стандартные и везде (форумы, чаты, лк, почты и тд) это реализовано относительно одинаково. Отсюда вопрос, нет ли готового решения в виде простого набора этих функций? Ну что-то типа шаблона, чтоли.. Просто муторно всё это делать, когда это уже двести раз всеми реализовано.

Cheats Development | Создание читов на заказ

Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
 
Ответить с цитированием


Старый 01.04.2013, 20:32   #2
котопес
Супер-модератор
Аватар для котопес
OFFLINE
Регистрация: 22.12.2008
Возраст: 48
Сообщений: 1,100
Благодарностей:
2,845 всего
Мнения: + 6388
Репутация: 9104

Если рядом лежит IPB форум, то можно через его API авторизовываться.
А так - везде в simphony, yii, kohana уже давно модули готовые на соответствующих сайтах написанные лежат. Прикручиваешь и все.
Если самописное надо - могу дать свой пример.

BigData DBA/DataInfraOps
 
Ответить с цитированием
Старый 01.04.2013, 21:06   #3
dark
Читодел
Аватар для dark
OFFLINE
Регистрация: 09.04.2007
Сообщений: 965
Благодарностей:
36,566 всего
Мнения: + 37520
Репутация: 116361
Отправить сообщение для dark с помощью ICQ Отправить сообщение для dark с помощью Skype™

Цитата:
Сообщение от котопес Посмотреть сообщение
Если рядом лежит IPB форум, то можно через его API авторизовываться.
А так - везде в simphony, yii, kohana уже давно модули готовые на соответствующих сайтах написанные лежат. Прикручиваешь и все.
Если самописное надо - могу дать свой пример.
Последний вариант предпочтительнее)

Cheats Development | Создание читов на заказ

Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
 
Ответить с цитированием
Старый 01.04.2013, 21:28   #4
[Zeto]
Проверенный продавец
Аватар для [Zeto]
OFFLINE
Регистрация: 06.07.2012
Сообщений: 698
Благодарностей:
1,011 всего
Мнения: + 3795
Репутация: 3034
Отправить сообщение для [Zeto] с помощью Skype™

как вариант можно раскулачить кабинет фдкора и там посмотреть.
 
Ответить с цитированием
Старый 02.04.2013, 04:08   #5
noise
Читер со стажем
Аватар для noise
OFFLINE
Регистрация: 08.11.2009
Сообщений: 403
Благодарностей:
78 всего
Мнения: + 729
Репутация: 235

Фдкор какраз на yii вроде

Есть готовые варианты (гуглить по ACL или Authentication library), но опять же в случае php крайне рекомендую хоть самый простой, но фреймворк, удобнее и быстрее будет в разы
 
Ответить с цитированием
Старый 22.09.2014, 00:45   #6
JEY
Старая гвардия
Аватар для JEY
OFFLINE
Регистрация: 12.05.2008
Сообщений: 466
Благодарностей:
1,126 всего
Мнения: + 4574
Репутация: 3553
Отправить сообщение для JEY с помощью ICQ Отправить сообщение для JEY с помощью Skype™

Модель (клиент)
Регистрация
— логин (a-z0-9)
— пароль
Вход
— логин
— пароль
Cookie
— уникальный идентификатор юзера
— хэш

Модель (сервер)
MySQL
Таблица users
user_id (int(11))
user_login (Varchar(30))
user_password (varchar(32))
user_hash (varchar(32))
user_ip (int(10)) по умолчанию 0

При регистрации в базу данных записываеться логин пользователя и пароль(в двойном md5 шифровании)
При авторизация, сравниваеться логин и пароль, если они верны, то генерируеться случайная строка, которая хешируеться и добавляеться в БД в строку user_hash. В куки пользователя мы записываем его уникальный индетификатор и сгенерированный hash.

Практика
Код:
-- 
-- Структура таблицы `users` 
-- 
CREATE TABLE `users` ( 
`user_id` int(11) unsigned NOT NULL auto_increment, 
`user_login` varchar(30) NOT NULL, 
`user_password` varchar(32) NOT NULL, 
`user_hash` varchar(32) NOT NULL, 
`user_ip` int(10) unsigned NOT NULL default '0', 
PRIMARY KEY (`user_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

register.php

PHP код:
<?
// Страница регситрации нового пользователя
# Соединямся с БД
mysql_connect("localhost""myhost""myhost");
mysql_select_db("testtable");
if(isset(
$_POST***91;'submit'***93;))
{
$err = array();
# проверям логин
    
if(!preg_match("/^***91;a-zA-Z0-9***93;+$/",$_POST***91;'login'***93;))
    {
        
$err***91;***93; = "Логин может состоять только из букв английского алфавита и цифр";
    }
    if(
strlen($_POST***91;'login'***93;) < or strlen($_POST***91;'login'***93;) > 30)
    {
        
$err***91;***93; = "Логин должен быть не меньше 3-х символов и не больше 30";
    }
    
# проверяем, не сущестует ли пользователя с таким именем
    
$query mysql_query("SELECT COUNT(user_id) FROM users WHERE user_login='".mysql_real_escape_string($_POST***91;'login'***93;)."'");
    if(
mysql_result($query0) > 0)
    {
        
$err***91;***93; = "Пользователь с таким логином уже существует в базе данных";
    }
    
# Если нет ошибок, то добавляем в БД нового пользователя
    
if(count($err) == 0)
    {
        
$login $_POST***91;'login'***93;;
        
# Убераем лишние пробелы и делаем двойное шифрование
        
$password md5(md5(trim($_POST***91;'password'***93;)));
        
mysql_query("INSERT INTO users SET user_login='".$login."', user_password='".$password."'");
        
header("Location: login.php"); exit();
    }
    else
    {
        print 
"<b>При регистрации произошли следующие ошибки:</b><br>";
        foreach(
$err AS $error)
        {
            print 
$error."<br>";
        }
    }
}
?>
<form method="POST">
Логин <input name="login" type="text"><br>
Пароль <input name="password" type="password"><br>
<input name="submit" type="submit" value="Зарегистрироваться">
</form>
login.php

PHP код:
<?
// Страница авторизации
# Функция для генерации случайной строки
function generateCode($length=6) {
    
$chars "abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPRQSTUVWXYZ0123456789";
    
$code "";
    
$clen strlen($chars) - 1;  
    while (
strlen($code) < $length) {
            
$code .= $chars***91;mt_rand(0,$clen)***93;;  
    }
    return 
$code;
}
# Соединямся с БД
mysql_connect("localhost""myhost""myhost");
mysql_select_db("testtable");
if(isset(
$_POST***91;'submit'***93;))
{
    
# Вытаскиваем из БД запись, у которой логин равняеться введенному
    
$query mysql_query("SELECT user_id, user_password FROM users WHERE user_login='".mysql_real_escape_string($_POST***91;'login'***93;)."' LIMIT 1");
    
$data mysql_fetch_assoc($query);
# Соавниваем пароли
    
if($data***91;'user_password'***93; === md5(md5($_POST***91;'password'***93;)))
    {
        
# Генерируем случайное число и шифруем его
        
$hash md5(generateCode(10));
if(!@
$_POST***91;'not_attach_ip'***93;)
        {
            
# Если пользователя выбрал привязку к IP
            # Переводим IP в строку
            
$insip ", user_ip=INET_ATON('".$_SERVER***91;'REMOTE_ADDR'***93;."')";
        }
        
# Записываем в БД новый хеш авторизации и IP
        
mysql_query("UPDATE users SET user_hash='".$hash."' ".$insip." WHERE user_id='".$data***91;'user_id'***93;."'");
        
# Ставим куки
        
setcookie("id"$data***91;'user_id'***93;, time()+60*60*24*30);
        
setcookie("hash"$hashtime()+60*60*24*30);
        
# Переадресовываем браузер на страницу проверки нашего скрипта
        
header("Location: check.php"); exit();
    }
    else
    {
        print 
"Вы ввели неправильный логин/пароль";
    }
}
?>
<form method="POST">
Логин <input name="login" type="text"><br>
Пароль <input name="password" type="password"><br>
Не прикреплять к IP(не безопасно) <input type="checkbox" name="not_attach_ip"><br>
<input name="submit" type="submit" value="Войти">
</form>


check.php
PHP код:
<?
// Скрипт проверки
# Соединямся с БД
mysql_connect("localhost""myhost""myhost");
mysql_select_db("testtable");
if (isset(
$_COOKIE***91;'id'***93;) and isset($_COOKIE***91;'hash'***93;))
{   
    
$query mysql_query("SELECT *,INET_NTOA(user_ip) FROM users WHERE user_id = '".intval($_COOKIE***91;'id'***93;)."' LIMIT 1");
    
$userdata mysql_fetch_assoc($query);
    if((
$userdata***91;'user_hash'***93; !== $_COOKIE***91;'hash'***93;) or ($userdata***91;'user_id'***93; !== $_COOKIE***91;'id'***93;)
 or ((
$userdata***91;'user_ip'***93; !== $_SERVER***91;'REMOTE_ADDR'***93;)  and ($userdata***91;'user_ip'***93; !== "0")))
    {
        
setcookie("id"""time() - 3600*24*30*12"/");
        
setcookie("hash"""time() - 3600*24*30*12"/");
        print 
"Хм, что-то не получилось";
    }
    else
    {
        print 
"Привет, ".$userdata***91;'user_login'***93;.". Всё работает!";
    }
}
else
{
    print 
"Включите куки";
}
?>


Я делаю всегда вот на этом скелете, все очень понятно, безопасно, и универсально.

ICQ: 751228
Skype: Jeye51
E-Mail: Jey-n70@ya.ru


Научу кидать людей на деньги. Оплата: 50% до обучения, 50% после.
 
Ответить с цитированием
Старый 22.09.2014, 20:32   #7
noise
Читер со стажем
Аватар для noise
OFFLINE
Регистрация: 08.11.2009
Сообщений: 403
Благодарностей:
78 всего
Мнения: + 729
Репутация: 235

Не, ну я понимаю что теме 1.5 года, но твой код с хешем, который ты mt_rand генерируешь вместо использования стандартных сессий, эт нечто, погугли получше про mt_rand, вообще не понимаю почему стандартные сессии не использовать, хоть убей
 
Ответить с цитированием
Ответ



Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Мир танков | Проект "Армата" | ArcheAge | Black Desert | РФ Онлайн | Айон | Майнкрафт | Браузерные игры
Элдер скролс | Р2 Онлайн | Реквием Онлайн | ПУБГ | Роял Квест | ГТА Санадреас | Контра | Дота 2
Мир кораблей | Лост Арк | Arma2 DayZ mod | The War Z | Карос: Начало | Tera Online
Читы для всех Онлайн-игр