Skocz do zawartości

Sesje lub ciasteczka przy logowaniu


BlackHat

Rekomendowane odpowiedzi

Witam!

Mój problem pojawia się w pewnym skrypcie który napisał mi znajomy (sam niestety nie znam się na tym najlepiej, a on wyjechał) dotyczący logowania:

<?

mysql_connect("xxxxxxx","xxxxxxxxx","xxxxxxxxxx");
mysql_select_db (xxxxxxxxx);

$zapytanie="SELECT * FROM `ibf_members` WHERE `name`='".$_POST['login']."' AND `legacy_password`='".md5($_POST['haslo'])."'";
$wynik = mysql_query($zapytanie);
$wiersz=mysql_fetch_array ($wynik);
if (mysql_num_rows($wynik)=="1" AND $wiersz['mgroup']=="4" )
{
TRESC PO ZALOGOWANIU
} 
else 
{ 
echo "<form method='post' name='n' enctype='multipart/form-data' action='index.php'>
Login: <input type='text' name='login'><br /><br />
Haslo: <input type='password' name='haslo'><br /><br />
<input type='submit' value='ENTER'>
</form>"; }

?>

Otóz osoba X po wpisaniu swojego nicka i passa oraz po sprawdzeniu czy pasuje do tego zapisanego w bazie danych loguje sie i wyswietlona jej jest tresc dla osob zalogowanych z wieloma innymi odnosnikami .... jednak...

nie mam zielonego pojecia co zrobic aby osoba ta nie musiala sie logowac za kazdym razem jak wchodzi na kolejne wygenerowane podstrony pliku index.php np.

index.php?dir=Katalog1/

dowiedziałem się już że można to zrobić za pomocą ciasteczek:

<?php
setcookie ("xxxxxx", $value,time()+3600);
?>

Niestety nie wiem gdzie i jak to wstawić w tym skrypcie...

A może jest jakiś inny sposób?

Prosze o pomoc!

naughty.gif
Odnośnik do komentarza
Udostępnij na innych stronach

mam tak:

if (mysql_num_rows($wynik)=="1" AND $wiersz['mgroup']=="4" )
{
setcookie ("xxxxxx", $value,time()+3600);

TRESC PO ZALOGOWANIU
}

i nadal nie działa :/

Tresc po zalogowaniu to skrypt indeksujacy... wiec loguje sie na index.php widze zawartosc root foldera - OK, klikam w katalog np. TEST czyli

index.php?dir=TEST/

i znow mi sie kaze logowac

HELP!! :)

naughty.gif
Odnośnik do komentarza
Udostępnij na innych stronach

if ( ( mysql_num_rows($wynik)=="1" AND $wiersz['mgroup']=="4" ) OR $_COOKIE[ 'xxx' ] )

{

setcookie ("xxx", 1,time()+3600);

TRESC PO ZALOGOWANIU

}

Działać będzie, ale bezpieczne to nie jest. Wystarczy wykraść ciasteczko o nazwie xxx od jakiegoś zalogowanego usera.

stopka usunieta z wpoodu wirusa na stronie docelowej

Odnośnik do komentarza
Udostępnij na innych stronach

jeszcze jeden post sorry ale zeby bylo czytelniej:

if ( ( mysql_num_rows($wynik)=="1" AND ($wiersz['mgroup']=="4"  or $wiersz['mgroup']=="6" or $wiersz['mgroup']=="7" or $wiersz['mgroup']=="8" or $wiersz['mgroup']=="12" ) ) or $_COOKIE[ 'xxxx' ] )

mam ten kod - wyglada ok, ale... nie wiem czemu ale z ok 150 userow ktorzy moga sie tam zalogowac bo spelniaja warunki tylko ja jako Administrator Forum (bo to jest podpiete pod baze danych forum) moge sie logowac :/ ktos widzi jakis blad?

naughty.gif
Odnośnik do komentarza
Udostępnij na innych stronach

Nie zlepiaj bezmyslnie kawałków kodu! Poszukaj w google o systemach logowania i autoryzacji poducz sie php a całą pewnością znajdziesz lepsze rozwiazanie. A jak nie... to dzial zlecenia ktoś ci to napisza i to iMHO za symboliczną kwotę / piwo

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

To nie ma znaczenia z jakiej bazy zostaną pobrane wyniki i dalej przetworzone...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zrób to na sesjach.

session_start();
if($_SESSION['login'] == 'ok')
{
//Treść po zalogowaniu
}
else
{
// Twój skrypt, w momencie prawidłowego zalogowania ustawia, gdy jest błąd pokazuje logowanie
$_SESSION['login'] = 'ok';
}

Dała matka rozum? To kombinuj.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności