Форум программистов, компьютерный форум, киберфорум
Интернет-маркетинг, SEO
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/28: Рейтинг темы: голосов - 28, средняя оценка - 4.71
Регистрация: 23.02.2010
Сообщений: 33
1

Авторизация на сайте

02.03.2011, 15:52. Показов 5204. Ответов 11
Метки нет (Все метки)

На своем сайте я сделал форму авторизации с полями для ввода логина и пароля и форма работает, то есть для авторизации необходимо правильно заполнить поля логин и пароль. Но когда посетитель сайта заходит на свой профиль в адресной строке браузера после адреса сайта и названия страницы появляется его логин. Проблема в том, что любой посетитель сайта узнав любой чужой логин может зайти на страницу этого пользователя просто введя в адресной строке браузера название сайта и логин даже не зная пароля.

Вопрос:

Как сделать так, чтобы введя адрес сайта и логин в строке браузера без знания пароля посетители не могли заходить на чужой профиль?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2011, 15:52
Ответы с готовыми решениями:

Авторизация на сайте и получение данных из личного кабинета на сайте
В общем, проштудировав три справочника за неделю и полазав в интернете, кроме как опухнувшего мозга...

Авторизация на сайте
Здравствуйте. Не работает авторизация на сайте. Код с курса Жур Артур. Обработкич auth.php...

Авторизация на сайте
Доброго времени суток. Не пинайте, ибо я новичок. Не могу авторизироваться на сайт...

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

11
Регистрация: 22.11.2007
Сообщений: 332
02.03.2011, 18:07 2
Почитайте Инет, как учебник. До сих пор ломают копья как правильно и надежно, но Ваш способ никакой критики не выдерживает...

Минимум по Вашему способу: отправляете форму постом, а не гетом, проверяйте пароль и т.д., и т.п, и проч.
0
Регистрация: 23.02.2010
Сообщений: 33
02.03.2011, 18:21  [ТС] 3
Раньше я делал сайты только на HTML, а сейчас делаю первый сайт на PHP + MySQL. В интернете есть много вариантов как можно сделать авторизацию на сайте, но в них много лишнего кода. Я никогда не пользуюсь движками и всегда пишу код и делаю дизайн сам. В данном случае мне не нужен слишком замудреный код мне просто нужно доработать свой вариант.

Код фомы авторизации:
<div>CODE</div><div><?php
$avtor = mysql_query ("SELECT login,name,family FROM user WHERE login='$login'");
$prov = mysql_fetch_array ($avtor);
if ($prov['login'] != '')
{echo "<p><strong>$prov[name] $prov[family]</strong>
<a href='index.php?login=0'>Выйти</a></p>


";}
else
echo
<<<HERE
<form action="control_obr.php" name="forma" method="post">


<p>Логин <input tupe="text" name="login">

Пароль <input type="password" name="password">
</p>
<p><input type="submit" name="button" value="Войти">
[URL="registration.php">Регистрация</a></p>
</form>
HERE;
?></div>

Код обработчика:
<div>CODE</div><div><?php
include ("bd.php");
if (isset($_POST['login'])) {$login = $_POST['login'];} if (!isset($login)) {$login = 0;}
if (isset($_POST['password'])) {$password = $_POST['password'];} if (!isset($password)) {$password = 0;}
if (isset($_POST['button'])) {$submit = $_POST['button']; if ($button == '') {unset ($button);}}
$result10 = mysql_query("SELECT login,password FROM user WHERE login='$login' AND password='$password'");
$myrow10 = mysql_fetch_array($result10);
if (($login == $myrow10["login"]) and ($password == $myrow10["password"]) and (isset($button)))
{echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php?login=$login'></html></head>";}
else {echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php?login=0'></html></head>";}
?></div>

Возможно здесь просто необходимо добавить еще какую-нибудь небольшую проверку на все страницы сайта, а так как это PHP и их всего около 10 штук, то это не займет много времени.

P.S. А на счет моего способа, так его просто нет, я его еще не доделал, как можно критиковать то чего попросту нет и по этому я и обратился за помощю, а не за критикой. Метод Гет я вообще не использую на всех страницах только Пост.
0
Регистрация: 24.03.2010
Сообщений: 39
03.03.2011, 18:35 4
самый быстрый, но не самый лучший способ - после проверки пары логин/пароль зашиваете в переменную сессии какое-нибудь значение (для каждого пользователя свое). При запросе страницы пользователя проверяте, есть ли такая переменная. Если есть, то пользователь залогинен и ему можно отдавать его инфу, если в сессий этого нет, то посылать на фик.
0
Регистрация: 24.12.2006
Сообщений: 70
04.03.2011, 18:50 5
Жесть, а где проверки на входящую информацию? О_о Хотя бы кавычки экранируйте что ли.
Зачем сразу пытаться получить массив с информацией из базы, Вы уверены что данный массив будет всегда, допустим, при не существующим логине?
А вообще, то что надо Вам реализовать- элементарно.
Берете логин который ввели, проверяете сперва по базе, есть ли такой логин. если есть, то сверяете введенный пароль с паролем в базе, но не забывайте $pass=md5($_POST['pass']) как минимум или 2й md5, а если уж нету или пароль в базе не совпадает, то выводим ошибку. После залогинивания вешаем сессию с Id пользователя, хешем пароля. В дальнейшем в кабинете пользователя получаем эту сессию, если ее нет, то посылаем на залогинивание, если есть, то проверяем хеш пароля с паролем в базе id пользователя и только потом пускаем в кабинет.

p.s. читайте книги, не надо выдавать в Мир сайты с уязвимостями и плохим кодом, программистам это добавляет работы, хакерам денег, а Вам слезы. А учиться лучше на локалхосте тестируя на уязвимости.
0
Регистрация: 22.11.2007
Сообщений: 332
04.03.2011, 19:04 6
<b>iTula</b>, спасибо за поддержку и нормальные во всех смыслах слова!!!
0
Регистрация: 12.06.2006
Сообщений: 75
04.03.2011, 19:18 7
Ваша проблема ещё и в том, что Вы не знаете что такое кукисы, поэтому и пытаетесь передать всё в адресной строке.
0
Регистрация: 23.02.2010
Сообщений: 33
04.03.2011, 19:32  [ТС] 8
Я же говорю это мой первый сайт на PHP + MySQL. Раньше я никогда не работал с этими языками программирования и знаю их меньше месяца, а что такое сессии узнал только сегодня.

<b>iTula</b> - Не понял какие кавычки экранировать если речь о форме так там есть экранирование "HERE". Я же не говорю чтобы кто-то использовал этот код, я просто хотел чтобы его кто-нибудь дописал.
0
Регистрация: 24.12.2006
Сообщений: 70
05.03.2011, 19:46 9
Я о другом экранировании. Почитайте пару статей на тему безопасности и корректности входящих данных.

я просто хотел чтобы его кто-нибудь дописал.
:) Вы хотите научиться или что? Может быть и код стоящий выше писали не Вы?
Я Вам расписал алгоритм, он элементарный, только перепишите мои слова в виде функций.
Подучите сессии и cookies, Вы удивитесь, на сколько все элементарно.
0
Регистрация: 23.02.2010
Сообщений: 33
05.03.2011, 20:00  [ТС] 10
Вы хотите научиться или что?
Я хочу один раз сделать и забыть.

Может быть и код стоящий выше писали не Вы?
Код написал я, но за пять минут и без каких-либо знаний PHP и MySQL.

Я Вам расписал алгоритм, он элементарный, только перепишите мои слова в виде функций.
Алгоритм нормальный, но я начал эту тему на форуме как раз для того, чтобы кто нибудь и написал его в виде функций.

Если все такие хорошие программисты могли бы черкнуть пару строчек кода, тем-болие раз уж он такой элементарный.
0
Регистрация: 24.12.2006
Сообщений: 70
05.03.2011, 20:15 11
Если все такие хорошие программисты могли бы черкнуть пару строчек кода, тем-болие раз уж он такой элементарный.
300р/час и будет идеальный код ;) Ничего личного- это бизнес.
0
Регистрация: 23.02.2010
Сообщений: 33
05.03.2011, 20:29  [ТС] 12
300р/час и будет идеальный код ;) Ничего личного- это бизнес.
Хороший ответ :) в прошлом году на этом форуме за бесплатно помогали, а сейчас только за деньги :) .
Не думаю что программист будет писать такой код более пяти минут и того по вашему тарифу всего 25 руб. :) .
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2011, 20:29

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Авторизация на сайте
Здравствуйте, я только начинаю изучать c++ и хотел бы узнать как сделать авторизацию? Нужно...

Авторизация на сайте
Можно тут попросить у кого-нибудь написать авторизацию на сайте https://armorgames.com/login с...

Авторизация на сайте
Здравствуйте. Я еще новичок в этом деле и поэтому никак не могу понять как пройти авторизацию на...

c# Авторизация на сайте
Здравствуйте! Появился такой вопрос... Как мне пройти авторизацию на сайт? Вот ссылка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.