IPB


Бесплатные VPN сервера

Здравствуйте, гость ( Вход | Регистрация )

> Внимание!

Задавая вопрос, обязательно укажите свой логин, домен и скрипт, которых он касается.

>> !!Ответы на 90% вопросов здесь!! <<


Правила хостинга | Общие ошибки новичков | Поиск

 
Тема закрытаНачать новую тему
Регистрация на $_GET'ах
mak326428
сообщение 5.8.2011, 11:18
Сообщение #1


Выпускник
**

Группа: Пользователи
Сообщений: 12
Регистрация: 27.7.2011
Пользователь №: 3895



Мне интересно как сделать регу на $_GET'ах.

Логин - $_GET['login']
Пароль - $_GET['password']

если $_GET['act'] == "login", то проверять правильный ли логин и пасс, если же $_GET['act'] == "register", то регистрируем.
Как это сделать? Знаю чуть туповато, но в инете нашёл пример только с POST'ами
Перейти в начало страницы
 
+Цитировать сообщение
BaNru
сообщение 5.8.2011, 14:23
Сообщение #2


Местный флудер
*******

Группа: Пользователи
Сообщений: 1222
Регистрация: 24.5.2010
Из: Самарская обл.
Пользователь №: 1502
Домен: g63.ru


Абсолютно так же как и с POST, просто меняй на GET.
Тут вся разница в том, что запросы POST не передаются через адресную строку, а GET'ы идут именно через адресную строку.
Так же в форме достаточно поменять POST на GET

Хотел бы обратить внимание, что через GET проще сделать мультирегу - набрал в адресной строке и нажимай F5 или ENTER меняя имя.


--------------------
Мой простой блог возродившийся из пепла времён

Чем больше человек стыдится, тем больше он заслуживает уважения /Б.Шоу/


- бесплатное продвижение сайтов
- обмен целевым трафиком
- увеличение посещаемости сайта
Тема об "RSSFriends" на форуме NX0
Перейти в начало страницы
 
+Цитировать сообщение
Phoenix84
сообщение 5.8.2011, 20:44
Сообщение #3


Гений автоматизации
*******

Группа: Пользователи
Сообщений: 1346
Регистрация: 12.3.2010
Из: Самара
Пользователь №: 1196
Домен: http://technophoenix.ru/


Цитата
Хотел бы обратить внимание, что через GET проще сделать мультирегу - набрал в адресной строке и нажимай F5 или ENTER меняя имя.

Ага, и очень легко спамить создавая фейковые акки


--------------------
Пишу на AutoIT и Delphi. ИМХО лучше них языков НЕТ
Уничтожте Ucoz, они портят разум и мозги детей
Medic Laboratory v2.0 is ALLREADY HERE!!!
Перейти в начало страницы
 
+Цитировать сообщение
mak326428
сообщение 6.8.2011, 13:51
Сообщение #4


Выпускник
**

Группа: Пользователи
Сообщений: 12
Регистрация: 27.7.2011
Пользователь №: 3895



Можно делать запрос с капчей... Чтоб когда отсылали запрос на регу создавать ссылку с капчей и отсылать юзеру эту ссылку. например, капча http://domain.com/captcha.php?captchakey=&..._реал_капчи>

Например, юзер посылает запрос:
http://domain.com/reg.php
Ответ:
OK|CAPTCHA=<мд5_от_реал_капчи>
Юзер отсылает запрос:
http://domain.com/reg.php?login=login&...что_он_ввёл>
Если мд5 реал капчи == <md5_от_того_что_он_ввёл>
Запрос к базе
INSERT INTO `users` VALUES ('$login', '$pass')
Иначе
Ответ:
Error! Captcha isnt right
Перейти в начало страницы
 
+Цитировать сообщение
ProgEXEr
сообщение 6.8.2011, 19:27
Сообщение #5


Аспирант
*****

Группа: Модераторы
Сообщений: 318
Регистрация: 7.6.2011
Из: Петропавловск-Камчатский
Пользователь №: 3685



[offtop]
Вообще, все равно, я не рекомендую делать регистрацию на GET'ах, потому что пароль будет отображаться в истории браузера... А если кто-то подсмотрит туда?
[/offtop]


--------------------
Правила хостинга и форумаОбщие ошибки новичковПоиск по форумуWiki хостинга

Убедительная просьба
, в ЛС по вопросам хостинга не писать.


Тяжела и неказиста жизнь простого программиста... :-)
Перейти в начало страницы
 
+Цитировать сообщение
mak326428
сообщение 19.8.2011, 12:52
Сообщение #6


Выпускник
**

Группа: Пользователи
Сообщений: 12
Регистрация: 27.7.2011
Пользователь №: 3895



ProgEXEr, можно шифровать md5(sha1($login) + "somesaltforhash"); и пароль и логин
Перейти в начало страницы
 
+Цитировать сообщение
ProgEXEr
сообщение 19.8.2011, 13:16
Сообщение #7


Аспирант
*****

Группа: Модераторы
Сообщений: 318
Регистрация: 7.6.2011
Из: Петропавловск-Камчатский
Пользователь №: 3685



Цитата(mak326428 @ 19.8.2011, 13:05) *
ProgEXEr, можно шифровать md5(sha1($login) + "somesaltforhash"); и пароль и логин

Ну, да, согласен, можно.
Но логин - не обязательно, это не секретная информация.
Могу помочь с реализацией регистрации/входа на PHP, обращайтесь в ICQ (у меня в подписи).


--------------------
Правила хостинга и форумаОбщие ошибки новичковПоиск по форумуWiki хостинга

Убедительная просьба
, в ЛС по вопросам хостинга не писать.


Тяжела и неказиста жизнь простого программиста... :-)
Перейти в начало страницы
 
+Цитировать сообщение
Горбушка
сообщение 19.8.2011, 18:11
Сообщение #8


Ректор
**********

Группа: Пользователи
Сообщений: 8994
Регистрация: 3.3.2008
Из: Москва/Россия
Пользователь №: 42
Домен: m-v-l.org


mak326428, не удержался...

1) Регистрация и авторизация на GET - это зло! Первым же делом будут ломиться боты, для которых работа с GET в разы проще работы с POST...
2) Пароль всегда храним в двойном md5, т.е. md5(md5($pass));
3) Самый хороший способ, когда мы предоставляем пользователю право регистрироваться только на 1 странице. К примеру, в DLE защиту капчей можно обойти просто пройдя по специальной ссылке (как её сгенерировать многие уже догадались)
4) Выводим страничку с регистрацией - туда же выводим капчу. После заполнения, если всё верно отправляем это всё в БД, но делаем 2 доп вещи:
а) ставим галочку "не активен"
б) добавляем хеш регистрации md5(microtime() . 'sadasd');
5) Отправляем пользователю ссылку вида /index.php?do=activ&id={id человека}&hech{Хеш регистрации} на мыло
6) Когда человек прошёл по этой ссылки - он уже не может повлиять на данные, которые храняться в БД. В ДЛЕ можно сгенерировать свою ссылку и перейти по ней, при этом игнорируя капчу.

Авторизация - тут всё ещё проще:
1) do=logout - обнуляем все куки и сессии
2) Парсим отправку логина и пароля по скрытому полю в форме
3) Проверяем, есть ли такой юзер и правильный ли пароль
4) Создаём куки или сессию
5) Если авторизация прошла не удачно - добавляем юзеру 1 "балл" нарушений и записываем последний вход.
6) Если "нарушений" больше 5 - блокируем на 15 минут, затем обнуляем.

Ну вот как-то так... Вы получите очень надёжную и безопасную регистрацию и авторизацию.
Если пойти дальше - можно ещё добавить ошибки "нет такого логина", "пароль не верен", "вы не можете просмотреть отключённый сайт" и т.д.


--------------------
Мы - анононим. Имя нам - Легион. Мы не прощаем. Мы не забываем. Ждите нас.
Перейти в начало страницы
 
+Цитировать сообщение
mak326428
сообщение 20.8.2011, 16:21
Сообщение #9


Выпускник
**

Группа: Пользователи
Сообщений: 12
Регистрация: 27.7.2011
Пользователь №: 3895



Сейчас пытаюсь всё это имплементить...
Код
/* У нас уже есть базы данных: users, users_online, users_to_register (пока не прошли проверку по имэйлу) */
/* Кратко обрисую:
1. в users_to_register у нас: хэш собственно реги, генерируется функцией genHashForReg, будующий логин и пароль юзверя (пароль в md5)
*/
$dbaccess = array('host' => 'localhost',
                    'login' => 'login',
                    'password' => 'pass',
                    'database' => 'db');
$db = mysql_connect($dbaccess['host'], $dbaccess['login'], $dbaccess['password']);
mysql_select_db($dbaccess['database']);
function genHashForReg()
{
    return base64_encode(gzcompress(md5(microtime() +"0dfas45afs")));
}
function activate()
{
    $hash = $_GET['hash'];
    $r = mysql_fetch_array(mysql_query("SELECT * FROM `users_to_register` WHERE hash = '$hash'", $db));
    if (empty($r['login']))
    {
        die("[err]:AlreadyActivated");
        // Выводим юзеру: зарегистрируйтесь ещё раз.
    }
    else
    {
        mysql_query("INSERT INTO `users` VALUES ('$r['login']', '$r['password']')", $db);
        mysql_query("DELETE * FROM `users_to_register` WHERE hash = '$hash'", $db);
        die("[sucess]:Done.");
    }
}
Перейти в начало страницы
 
+Цитировать сообщение
Горбушка
сообщение 20.8.2011, 16:27
Сообщение #10


Ректор
**********

Группа: Пользователи
Сообщений: 8994
Регистрация: 3.3.2008
Из: Москва/Россия
Пользователь №: 42
Домен: m-v-l.org


mak326428, зачем Вам отдельная таблица users_to_register? Просто делаете столбец "activ" и всё... А если он мыло сменил - что делать будете? Надо опять в users_to_register переносить? А так просто ставиться 0 и вписывается новый хеш...

Что касаемо users_online - требуется только если Вам нужно считать количество гостей online...

P.s. microtime() настолько точное число, что его почти нереально отследить и подобрать. Кроме того, разница между компьютером хакера и сервером будет порядка нескольких секунд. Поэтому это достаточно хороший механизм защиты хешей регистрации =)


--------------------
Мы - анононим. Имя нам - Легион. Мы не прощаем. Мы не забываем. Ждите нас.
Перейти в начало страницы
 
+Цитировать сообщение

Тема закрытаНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 20.9.2019, 20:59