login

ma3x_ip

Registered
Опирах се да направя логин обаче голям неуспех едто кода

Опитах следното първо проверява имали бисквитка ако има я проверява ако ли няма да зима стойностите от
$coousername=$_POST[username];
$coopassword=$_POST[password];
и сед това проверява дали има потребител с такова потребителско име и парола ако има includva lognat.php ако ли не includva nelognta.php

какво да направя за да ми работи както сам описал горе?

файл dsad.php------
<?
$coousername = $_COOKIE['username'];
$coopassword = $_COOKIE['password'];


if ($coousername==NULL and $coopassword==NULL )
{

$coousername=$_POST[username];
$coopassword=$_POST[password];
}


if ($coousername!= NULL and $coopassword!=NULL){

include "conf.php";
$result = mysql_query("SELECT * FROM user WHERE user='$coousername'");
if (mysql_num_rows($result) > 0)
$row = mysql_fetch_array($result);
$pass = $row['pass'];
$user = $row['user'];
$to4ki = $row['to4ki'];



if ($pass==$coopassword)
{include "lognat.php";}

else {include "nolognat.php";}


}
else {include "nolognat.php";}
?>



файл--------lognat.php
<?
setcookie ("username", $user, time() + 334800, "/", ".83.228.103.232");
setcookie ("password", $pass, time() + 334800, "/", ".83.228.103.232");
echo "Здравей $user в момента имаш $to4ki точки";
?>



файл------nolognat.php
<form action="dsad.php" method="POST">
<input name="username" type="text" /><br />
<input name="password" type="password" /><br />

<input class="vhod" type="submit" value="Вход"> <input name="send1" class="vhod" type="reset" value="Изчисти" /><br /><br />
<a href="zb_pass.php">Забравена парола</a><br /><a href="register.php">Региструрай се сега</a>


</form>
 
Моля те не прави това! Тоз код е опасен, тотално сбъркан, и не се прави така.

Първо е лудост да държиш user и pass в кукито!!!
Няма да продължавам защото ще ми отнеме 2 часа.
 
ggenov каза:
Моля те не прави това! Тоз код е опасен, тотално сбъркан, и не се прави така.

Първо е лудост да държиш user и pass в кукито!!!
Няма да продължавам защото ще ми отнеме 2 часа.

е добре де някой ще ми оеснили как точно се прави login?
 
ggenov каза:
Моля те не прави това! Тоз код е опасен, тотално сбъркан, и не се прави така.

Първо е лудост да държиш user и pass в кукито!!!
Няма да продължавам защото ще ми отнеме 2 часа.


какви може да са ппоследцтвията ако го направя така ?
 
последствията....ами с 1 прост xss ти взимам бисквитката и си виждам паролата ти в чист текст . По лошо от това не знам :)
 
bafitu каза:
последствията....ами с 1 прост xss ти взимам бисквитката и си виждам паролата ти в чист текст . По лошо от това не знам :)

да кажем че сам го кодирал с md5

другите последцтвия?
 
ma3x_ip каза:
bafitu каза:
последствията....ами с 1 прост xss ти взимам бисквитката и си виждам паролата ти в чист текст . По лошо от това не знам :)

да кажем че сам го кодирал с md5

другите последцтвия?
Това, че си я кодирал md5 пак не ти помага, защото скрипта за проверка очаква md5, което ще рече, мен като хакер не ме интересува какво се крие зад този md5 аз просто ще изпратя md5 :)
А и втория проблем при пазене на патолата в куки идва от това, че много PC-та се ползват от повече от един потребител. Това означава, че ако ти си седял на PC-то и си влезнал във въпросния сайт с юзер и парола. Сядайки аз след теб автоматично влизам логнат на сайта с твоя юзер, а ако съм малко по интелигентен мога да ти видя кукитата и да ти видя и паролата.

Просто не го прави така. Има си session за това. После кукито си има expire time.

И един hint:
Аз как го правя?
Ти си потребител. Отваряш сайта ми. На всяка една моя част на сайта ми преди да те допусна до данните, проверяв кукито ти. Ако нямаш такова ти генерирам session_id и ти го записвам в кукито с време на живот 30мин. Същия session_id записвам и в базата като срещу него записвам, че си анонимен потребител и съответно, ходейки по страниците проверявм session_id от твоето куки и ти давам достъп като за неоторизиран анонимен потребител.
В момента в който ти отидеш на login страницата. В нея има вграден javs script който е най-обикновен md5 алгоритъм. Освен това ти изпращам и 10 символен произволен код генериран на момента, същия код записвам в базата и срещу твоето session_id.
Ти написваш user и password, НО при submit java script-а прави md5(md5(password)+kod) и изпращаш реално user и md5 хеша на паролата и кода.
Сайта получава user и md5 хеш. Проверява md5 криптираната парола на твоя потребител, и прави md5 на криптираната парола от базата + кода генериран и записан срещу session_id-то ти в базата.
Ако има съвпадение то ти си въпросния потребител. Тогава сайта автоматично оказава в базата, че срещу твоето session_id вече стои user а на анонимен потребител.
От тук на сетне, сайта го интересува само твоето session_id. При всеки клик върхо сайта, преди да се изпълни каквото и да било, се проверява session_id от кукито ти, ако има съвпадение значи това си ти. А ако това си ти аз презаписвам кукито ти със същия session_id като увеличавм времето на жовот от този момент с 30мин.
Така ако кликаш по сайта ти винаги ще си логнат. Ако спреш да кликаш след 30мин. кукито ти умира и ти вече не си логнат. Ако не си логнат ... всичко започва от начало. А ако си логнат, по това какви права имаш и кой си решавам каква част и какви данни да ти покажа.
Между другото за зачистване на базата един perl скрипт минава на всеки 5 мин и затрива всички session записи в базата по стари оъ 35 мин.
Забравих да кажа, че в таблицата със session_id-тата има и колонка last_modify_time, на база на която се прави зачистването.
Забравих да кажа, че освен session_id за по голяма сигурност мога да запиша и IP адреса ти от момента на логване и след това освен session_id да проверявам и съвпадение на IP адрес.
 
Има и вариант в който данните за сесията ти не се пазят в база а в session файл в /tmp/.
Варианти много :)
И още, ако записваш сесията в базата, можеп да направиш така, че един потребител да може да се логне повече от веднъж, като за всяко логване той да има отделна сесия.
 
ggenov каза:
ma3x_ip каза:
bafitu каза:
последствията....ами с 1 прост xss ти взимам бисквитката и си виждам паролата ти в чист текст . По лошо от това не знам :)

да кажем че сам го кодирал с md5

другите последцтвия?
Това, че си я кодирал md5 пак не ти помага, защото скрипта за проверка очаква md5, което ще рече, мен като хакер не ме интересува какво се крие зад този md5 аз просто ще изпратя md5 :)
А и втория проблем при пазене на патолата в куки идва от това, че много PC-та се ползват от повече от един потребител. Това означава, че ако ти си седял на PC-то и си влезнал във въпросния сайт с юзер и парола. Сядайки аз след теб автоматично влизам логнат на сайта с твоя юзер, а ако съм малко по интелигентен мога да ти видя кукитата и да ти видя и паролата.

Просто не го прави така. Има си session за това. После кукито си има expire time.

И един hint:
Аз как го правя?
Ти си потребител. Отваряш сайта ми. На всяка една моя част на сайта ми преди да те допусна до данните, проверяв кукито ти. Ако нямаш такова ти генерирам session_id и ти го записвам в кукито с време на живот 30мин. Същия session_id записвам и в базата като срещу него записвам, че си анонимен потребител и съответно, ходейки по страниците проверявм session_id от твоето куки и ти давам достъп като за неоторизиран анонимен потребител.
В момента в който ти отидеш на login страницата. В нея има вграден javs script който е най-обикновен md5 алгоритъм. Освен това ти изпращам и 10 символен произволен код генериран на момента, същия код записвам в базата и срещу твоето session_id.
Ти написваш user и password, НО при submit java script-а прави md5(md5(password)+kod) и изпращаш реално user и md5 хеша на паролата и кода.
Сайта получава user и md5 хеш. Проверява md5 криптираната парола на твоя потребител, и прави md5 на криптираната парола от базата + кода генериран и записан срещу session_id-то ти в базата.
Ако има съвпадение то ти си въпросния потребител. Тогава сайта автоматично оказава в базата, че срещу твоето session_id вече стои user а на анонимен потребител.
От тук на сетне, сайта го интересува само твоето session_id. При всеки клик върхо сайта, преди да се изпълни каквото и да било, се проверява session_id от кукито ти, ако има съвпадение значи това си ти. А ако това си ти аз презаписвам кукито ти със същия session_id като увеличавм времето на жовот от този момент с 30мин.
Така ако кликаш по сайта ти винаги ще си логнат. Ако спреш да кликаш след 30мин. кукито ти умира и ти вече не си логнат. Ако не си логнат ... всичко започва от начало. А ако си логнат, по това какви права имаш и кой си решавам каква част и какви данни да ти покажа.
Между другото за зачистване на базата един perl скрипт минава на всеки 5 мин и затрива всички session записи в базата по стари оъ 35 мин.
Забравих да кажа, че в таблицата със session_id-тата има и колонка last_modify_time, на база на която се прави зачистването.
Забравих да кажа, че освен session_id за по голяма сигурност мога да запиша и IP адреса ти от момента на логване и след това освен session_id да проверявам и съвпадение на IP адрес.

мерси мнгоо +1
обаче аз сам нов php и незнам как се работи с сесии моежели да ми дадеж урок за тези сесии :)
 
Има нещо което съм си писъл за собствени нужди. Но е доста голямо и от много файлове. Не съм сигурен, че ще успееш да го ползваш. Инъче имам идея да напиша един урок по темата.
 
ggenov каза:
Има нещо което съм си писъл за собствени нужди. Но е доста голямо и от много файлове. Не съм сигурен, че ще успееш да го ползваш. Инъче имам идея да напиша един урок по темата и да приключат пародиите по тази тема.



ако направиш урок няма да згрешиш :?: :?:

да т помоля ако направиш да ми драснеп едно ЛС или на Skype:ma3x_ip
 
Ето го и урока ми: http://web-tourist.net/login/login/view.php?st=2489

То всъщност си е направо примерен работещ код а не точно урок.

Успех!
 
ggenov каза:
Ето го и урока ми: http://web-tourist.net/login/login/view.php?st=2489

То всъщност си е направо примерен работещ код а не точно урок.

Успех!

като кликна на урока ми пише
Урокът не е активен. Ще бъде видим след проверка от администратор.
 
Еми като не го удобри ... здраве да е. Ще го затъркам и нема се разправям повече :)
Ай бай на всички докато ми доскучае много някой друг път.
Ето го демото:
http://212.50.0.89/login/index.php
User: demo Pass: 123123
User: admin Pass: 123123

Урока е изтрит.
 

Back
Горе