Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] kilka pytan
Forum PHP.pl > Forum > PHP
outsider
Witam

Mam kilka pytan. 

1. Co uzywac, ereg czy eregi i dlaczego questionmark.gif

2. Czy bedzie wieksze bezpieczenstwo hasel jesli zastosuje md5 i: podziele zhaszowane haslo na pol, z dwoch polowek odejme po 3 znaki na koncu, dodam kombinacje znakow z maila (np. od 1-4 litery maila), polacze ostatecznie druga polowke + kombinacja z maila + pierwsza polowka. Ochronie dzieki temu hasla, jesli w najgorszym wypadku ktos dostanie sie do bazy ?

3. Czy zastosowac ta sama technike do przechowania hasla w cookies - czy inna ?

4. W jednym miejscu mam warunek:

Kod
if($_SESSION['zalogowano'] == "tak") {
(czyli czy uzytkownik jest zalogowany)

To czy haker moglby w jakis sposob zmienic SESSION['zalogowano'] na "tak"(gdy nie jest zalogowany) ? Czy moze tylko odczytac jaka wartosc jest w tej zmiennej ?

Za odp. z gory dziekuje winksmiley.jpg
decha-design
Cytat(*OuTSideR* @ 11.01.2009, 11:28:34 ) *
1. Co uzywac, ereg czy eregi i dlaczego questionmark.gif
Ani tego ani tego ... korzystać z preg" title="Zobacz w manualu PHP" target="_manual .. http://pornel.net/ereg

Cytat(*OuTSideR* @ 11.01.2009, 11:28:34 ) *
2. Czy bedzie wieksze bezpieczenstwo hasel jesli zastosuje md5 i: podziele zhaszowane haslo na pol, z dwoch polowek odejme po 3 znaki na koncu, dodam kombinacje znakow z maila (np. od 1-4 litery maila), polacze ostatecznie druga polowke + kombinacja z maila + pierwsza polowka. Ochronie dzieki temu hasla, jesli w najgorszym wypadku ktos dostanie sie do bazy ?
... wystarczy samo md5() ... jak ktoś dostanie się do bazy to i tak Ci rozwali strone, a jak już bedzie mu zalezalo na hasłach (tylko) to dostanie ciąg 32 znaków z którymi nic nie zrobi - Nie da się tego odkodować. md5() to funkcja mieszająca nie kodująca ... czy jak to tam zwał

Cytat(*OuTSideR* @ 11.01.2009, 11:28:34 ) *
3. Czy zastosowac ta sama technike do przechowania hasla w cookies - czy inna ?
Najlepiej to nie przechowuj haseł w kukies i będzie bez problemu. W ciastkach najlepiej trzymać takie rzeczy, które nie są zbyt istotne np. $_SESSION['logged_in'] = true;

Cytat(*OuTSideR* @ 11.01.2009, 11:28:34 ) *
Kod
if($_SESSION['zalogowano'] == "tak") {
(czyli czy uzytkownik jest zalogowany)
To czy haker moglby w jakis sposob zmienic SESSION['zalogowano'] na "tak"(gdy nie jest zalogowany) ? Czy moze tylko odczytac jaka wartosc jest w tej zmiennej ?
Tak, może zmienić ... znaczy przechwycić sesje innego użytkownika. Dlatego w sesjach najlepiej trzymać jeszcze IP i Host z jakiego użytkownik się zalogował i sprawdzać czy jest zgodny z tym co teraz ma dany, zalogowany użytkownik na stronie ... jeżeli nie po prostu robisz die() i haker ma pustą, białą stronę...
outsider
Cytat
Nie da się tego odkodować

A brute force ? Ale tak czy inaczej watpie zeby komus zalezalo na haslach, chociaz niektorzy maja takie same na maila...

Chce aby uzytkownik mogl zaznaczyc opcje "Zapamietaj", nie mam zadnego pomyslu jak by to zrobic aby hasla nie bylo w cookies.
decha-design
To na pewno nie na sesjach ... był juz taki temat. Robisz ciasteczko ...

  1. <?php
  2. setcookie("LoggedIn", true, time()+60*60*24);
  3. ?>
po 1 dniu ciasteczko szlag trafi =)

I później sprawdzasz czy użytkownik jest zalogowany, jeżeli nie to sprawdzasz czy istniej ciasteczko
  1. <?php
  2. if($_COOKIE['LoggedIn'] == true)
  3. ?>
... jeżeli true to logujesz, jeżeli nie to formularz ...

A co do haseł, to nie musisz się tak męczyć, możesz dorobić tzw. sól ...

  1. <?php
  2. $password = 'dupa';
  3. $salt = 'SALT_';
  4. $password .= $password + $salt;
  5. $password = md5($password);
  6. ?>
czy jakoś tak ...
outsider
W Manualu znalazlem to o soli:
Kod
$hash = md5($salt1.$password.$salt2);


Co do "zapamietaj", rowniez w manualu podano ciekawe rozwiazanie:
Kod
$cookie = md5 ($username.$password.$_SERVER['REMOTE_ADDR']);

setcookie ("login", $cookie);


Dzieki wielkie smile.gif
decha-design
a jak ktoś ma zmienne IP? co wtedy?
pinochet
Cytat(decha-design @ 11.01.2009, 11:48:41 ) *
  1. <?php
  2. if($_COOKIE['LoggedIn'] == true)
  3. ?>
... jeżeli true to logujesz, jeżeli nie to formularz ...

hehe a to dobre ;] ja sobie napisze ciastko z taką zmienną na dysku i co questionmark.gif ... będę zalogowany tak?
temat był juz poruszany kilka razy na forum ... np tu: http://forum.php.pl/index.php?showtopic=10...l=autologowanie
outsider
z tym IP to nie pomyslalem.

Jesli chodzi o sesje i cookies.
1. Czy haker moglby przechwycic od kogos sesje lub cookies ?

Z sesja jest problem rozwiazany bo mozna w sesje wsadzic jakas kombinacje znakow + IP zalogowanego i md5(). Porownojac widzimy czy ktos ma sesje z nie tego IP - przy zmiennych IP bedzie trzeba sie zalogowac jeszcze raz, ale to sie zdarza bodajze 1 na dzien.
Z cookies nie wiem, bo zamierzam trzymac w nim jakis ciag znakow ktory jest w bazie danych, porownojac cookies z baza widzimy do kogo nalezy i od razu ta osobe logujemy, tylko gdy ktos sobie takie cookies "podpierdzieli" ? haha.gif Moze ma ktos jakis pomysl ? Czy jest to nieuniknione ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.