Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 18 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 26.02.08
Prihlásený: 24.05.13
Príspevky: 372
Témy: 66
Bydlisko: Nové Zámky
Príspevok NapísalOffline : 13.07.2008 13:00

cafko...robim prihlasenie na stranku a chcem sa spytat ktore udaje od uzivatela mam zachovavat v session ked aj chcem overovat na inych strankach ci je prihlaseny a ake ma prava ci ma dostatocne prava na prehliadanie danej stranky atd...ako som pozeral vacsina ludi uklada meno a heslo ale niekde na nete som cital ze tam to heslo nieje bezpecne...a este mozno trosku odveci...ako spravit aby sa mi do db zapisal datum posledneho prihlasenia na web a ako mu do db taktiez zapisat ip z ktorej sa prihlasil??? tabulky mam spravene len mi to akosi nieje jasne ako to spojazdnit...viem ze sa to da aj pomocov session ze si ulozim do nej aktualny datum a ip ale ako to zapisat a ako to zapisat do db...thx ak sa to tu riesilo tak sry vcera do noci som to hladal ale akosi som to nezaregistroval


Offline

Čestný člen
Čestný člen
Session - prihlasenie

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1752
Témy: 17
Príspevok NapísalOffline : 13.07.2008 13:07

do db to predsa zapises ako hocico ine. pole kde chces posledny cas prihlasenia daj ako timestamp a nastav ho na current timestamp. pri kazdom update sa ti zmeni na aktualny datum a cas. ip zistis pomocou $_SERVER['REMOTE_ADDR']. a v session uchovavam len identifikator, podla ktoreho vytahujem potom prava a podobne veci z db.







_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 26.02.08
Prihlásený: 24.05.13
Príspevky: 372
Témy: 66
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 13.07.2008 13:13

hmmmmcize navrhujes ak som dobre pochopil id uzivatela???a potom vsetko pomocov toho id vycucat z db??? a ako potom vyzera script na overenie???


Offline

Čestný člen
Čestný člen
Session - prihlasenie

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1752
Témy: 17
Príspevok NapísalOffline : 13.07.2008 13:17

nie id uzivatela. pri kazdom prihlaseni vytvorim idsessiony, ktore priradim v db k uzivatelovi. cize pre kazde prihlasenie je to id ine.







_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 26.02.08
Prihlásený: 24.05.13
Príspevky: 372
Témy: 66
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 13.07.2008 13:18

hmmm akosi som to moc nepochopil...nemas nejaky link kde je to rozpisanejsie???lebo akosi mi to nejde do hlavy neviem si to predstavit ako to bude fungovat a ako to ma vlastne vyzerat


Offline

Čestný člen
Čestný člen
Session - prihlasenie

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1752
Témy: 17
Príspevok NapísalOffline : 13.07.2008 13:27

uzivatel sa prihlasi, vytvoris nejaky nahodny identifikator(napriklad md5($aktualnyDatumCas.$nick)), ten ulozis do session a zaroven aj do db prihlasenemu uzivatelovi. a ten ti po dobu prihlasenia sluzi na overenie. ked je v session aj v db rovnaky, jedna sa o daneho uzivatela







_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 26.02.08
Prihlásený: 24.05.13
Príspevky: 372
Témy: 66
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 13.07.2008 13:30

mnooo uz som asi pochopil co tym myslis...ale tak to by som mal spravit stlpec napr status kam sa to bude zapisovat alebo ako???


Offline

Čestný člen
Čestný člen
Session - prihlasenie

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1752
Témy: 17
Príspevok NapísalOffline : 13.07.2008 13:33

bud, alebo este lepsie, sprav dalsiu tabulku, kde budes uchovavat id prihlaseneho uzivatela a id session







_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.02.08
Prihlásený: 17.04.14
Príspevky: 108
Témy: 22
Príspevok NapísalOffline : 13.07.2008 13:39

vdaka suchy za radu... ja som do session ukladal prihlasenie s hodnotou 1, username a id uzivatela :lol: ... Tvoja rada mi velmi pomoze... ;)

Len este jedno... Nebolo by to dobre, keby sa prihlasenim vlastne vytvorila docasna tabulka? teda tabulka, ktora sa sama vymaze po uzavreni spojenia s databazou? ci to je blby napad?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 13.07.2008 13:39

pozri poviem ti to polopate ... načo sa pýtaš??
ak chceš tak si uchovávaj ID uživateľa, zapíš dátum, nick však si zapíš čo len chceš ...

avšak pozri keď si zapíšeš Hodnost tak pokial session existuje tak je prihlaseny aj vieš jeho hodnost ...


2. vec. 2.riešenie:
V tabuľke s uživateľmi pridáš polôžky: IP, Cas
a pri prihlásení sa ti zapíše IP (ako to ti už napísal suchy) a taktiež dátum ... najjednoduchšie príkazom NOW() v databáze ...

pokiaľ chceš vedieť z akých IP sa prihlásil vytvor tabuľku IP s hodnotami: ID, ID_user, IP, Cas pričom ID je jedinečný auto inkrement kľúč, ID_user je forget key na user.ID, IP je IP prihlásenia ..., Cas taktiež Timestamp a NOW() a máíš v podstate všetko ...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 26.02.08
Prihlásený: 24.05.13
Príspevky: 372
Témy: 66
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 13.07.2008 13:52

Tominator este raz si precitas moj prispevok...pisal som tam ze som videl ze vacsina uklada meno a heslo a zatim ze som cital ze to nieje bezpecne...tak ocakaval som odpoved ako mi dal suchy cize nieco co by bolo efektivne a bezpecne nie toto
Citácia:
pozri poviem ti to polopate ... načo sa pýtaš??
ak chceš tak si uchovávaj ID uživateľa, zapíš dátum, nick však si zapíš čo len chceš ...
...jedine s cim si mi pomohol je asi ten prikaz NOW() ostatne sa mi zda dost odveci lebo vsetko tu bolo spomenute...pisal som ze tabulky mam spravene ale ajtak diki za radu a za snahu :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 13.07.2008 14:03

ono pozri ako ti mám odpovedať čo si dať do session, tak Heslo by som si ja nedal, ale nemôžem vedieť čo sa ti zíde ... ono dá session sa dá všelijako využiť ...

neviem vravím ti abstrakne ale to závisí od každého individuálne ...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok NapísalOffline : 13.07.2008 17:56

Ja dávam do SESSION iba userid, všetko ostatné sa ťahá z databázy. Teda, všetko ostatné je asi 5 položiek.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 26.02.08
Prihlásený: 24.05.13
Príspevky: 372
Témy: 66
Bydlisko: Nové Zámky
Príspevok Napísal autor témyOffline : 13.07.2008 18:14

oki diki vsetky ak este niekoho nieco napadne tak kludne piste...este by som sa chcel spytat coho sa vyvarovat pre tvorbe prihlasenia??? co osetrit naco nezabudnut a pod...thx :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok NapísalOffline : 13.07.2008 18:19

SQL injection - treba ošetriť všetky vstupy, teda hlavne čo sa týka užívateľského mena resp. e-mailu. Ja ošetrujem iba užívateľské meno / e-mail, pretože heslo hneď zašifrujem cez md5().


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 14.07.2008 9:39

ok takto:
pepek: ja väčšinou rátam s veľkou účasťou na stránke, takže každý dopyt na MYSQL spomaľuje chod takže aj tých 5 údajov mám v session

Blackdevil:
1, musíš mať dobré nastavené HTML, teda nastaviť maximálne rozmery mena - maxlenght, vyvarovať sa zbytočných hlúpostí hidden inputov a pod. pretože firefox má rozširenie a ním v pohode zmeníš hocijakú vec čo je HTML + inline JS

2, ošetrovať vstupy:
keďže vstupy sa dajú podstrčiť tak ja to ošetrujem tak že mám trim - htmlspecialchars a to následne kontrolujem regulárnym výrazom ...
čo sa týka hesla tak MD5 (ale ja mám aj celý predchádzajúci postup)
e-mail oštrujem regulárnym výrazom ...

3, ďalej pokiaľ posielaš niečo v adrese napr. ID článku kontrolujem funkciou is_numeric() alebo regulárnym výrazom ... v podste kď vieš regulárne výrazy veľa ti to pomôže

4, foto: keď si pozrieš hneď prvý topic v tejto sekcií nájdeš tam príspevok sucheho ktorý ukazuje ako dobre kontrolovať obrázky. Ja robím niečo podobné ... pri nahrávaní obrázku môžeš použiť napr. ošetrovanie prípony takto:
Kód:
$_FILES['foto']['type']=="image/pjpeg" OR
$_FILES['foto']['type']=="image/x-png" OR
$_FILES['foto']['type']=="image/gif"

alebo rozdelíš názov súboru napr. exlplode alevbo regulárnym výrazom a v podstate $pole[1] je prípona ktorú ďalej ošetruješ
keď vieme že obrázok je správny ošetríme veľkosť
Kód:
if($_FILES['foto']['size']<30000){
...
...
...
}

je to v bajtoch takže toto je 30kB

keď ti to prešlo aj touto podmienkou môžeš fotku slobodne nahodiť na server ...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53
Príspevok NapísalOffline : 14.07.2008 10:42

Tominator píše:
1, musíš mať dobré nastavené HTML, teda nastaviť maximálne rozmery mena - maxlenght, vyvarovať sa zbytočných hlúpostí hidden inputov a pod. pretože firefox má rozširenie a ním v pohode zmeníš hocijakú vec čo je HTML + inline JS


Čítaš, čo píšeš? Nastaviť v HTML maxlenght je úplne zbytočné a to práve kvôli tým rozšíreniam. Veď si to napísal v jednom bode, sám si protirečíš

Najlepšie je kontrolovať vstup až v PHP a nie v HTML kóde (pomocou maxlenght a podobných).

Čo sa týka legurálnych výrazov, tu je príklad na kontrolu užívateľského mena:

Kód:
if (!ereg('^[A-Za-z0-9_]{4,20}$', $_POST['uziv_meno'])) {
 echo ('Zadajte správne užívateľské meno');
}


Vysvetlenie:
- užívateľské meno musí obsahovať alphanumerické znaky t.j. všetky veľké a malé písmená bez diakritiky + čísla a/alebo podtržník (to je toto: _)
- minimálna dĺžka už. mena musí byť 4, maximálna 20

Mimochodom, nemám pocit, že by sa toto týkalo prihlasovania, keď už sme pri tom. Totiž pri prihlasovaní overuješ existenciu užívateľovho mena / e-mailu z databázy. Tam stačí ochrana proti SQL injection a XSS.

Príklad:
Kód:
<?php
function vycistit($string, $typ=VSTUP) {
 
 $string = ($typ == VSTUP ? addslashes($string) : stripslashes($string));
 $string = strip_tags($string);
 $string = htmlspecialchars($string);
 return $string;

}

if (!empty($_POST['odosli'])) {
 
 $meno = (!empty($_POST['meno']) ? $_POST['meno']:false);
 $heslo = (!empty($_POST['heslo']) ? $_POST['heslo']:false);
 
 if ($meno && $heslo) {

 $_meno = vycistit($meno);
 $heslo = md5($heslo);

 $poziadavka = @mysql_query("SELECT * FROM uzivatelia WHERE meno='$_meno' AND heslo='$heslo'");
 if (@mysql_num_rows($poziadavka)) {
 //pokračovanie skriptu s prihlásením
 }
 else {
  echo ('Zadali ste chybné meno alebo heslo.');
  $heslo = null;
 }

 }
 else {
  echo ('Zadajte meno a heslo!');
  $heslo = null;
 }

}
?>

<form action="prihlasenie.php" method="post">
 <input name="meno" value="<?php echo ($meno ? vycistit($meno, VYSTUP):''); ?>" />
 <input name="heslo" type="password" value="" />
<input type="submit" name="odosli" value="Prihlás ma" />
</form>


Pozn.: Je to narýchlo napísané, ospravedlňujem sa za prípadné chyby. Testoval som, tak by to malo fungovať.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 14.07.2008 10:47

pepek92 píše:
Čítaš, čo píšeš? Nastaviť v HTML maxlenght je úplne zbytočné a to práve kvôli tým rozšíreniam. Veď si to napísal v jednom bode, sám si protirečíš

to sa na prvý pohľad zdá, akurát uvažujem aj nad IE, a zdôrazňujem som že maxlenght je vhodné na ochranu pred dlhými reťazcami pod IE ale určite nie vhodné bezpečnostné opatrenie


Odpovedať na tému [ Príspevkov: 18 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Jednoduche prihlasenie pomocou SESSION

v PHP, ASP

5

1504

24.10.2007 1:21

mondzo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prihlasenie

v Databázy

1

913

28.07.2007 15:09

eiger33 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Prihlásenie

v PHP, ASP

21

962

08.03.2011 23:26

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prihlasenie

v PHP, ASP

4

673

19.04.2011 18:14

Gropi Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Prihlasenie

v Redakčné systémy

5

548

12.02.2007 8:46

mokus Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prihlasenie

v Operačné systémy Microsoft

3

774

20.01.2006 8:12

michal.h Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Prihlasenie

v Redakčné systémy

4

609

29.11.2007 16:23

pleso Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prihlasenie

v PHP, ASP

1

318

17.02.2014 21:57

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. session

v PHP, ASP

24

1911

19.01.2007 18:27

m@-nX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SESSION

v PHP, ASP

7

645

11.10.2007 14:37

xxxmiroxxx Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Session

v PHP, ASP

2

499

25.02.2010 14:59

arno Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. session

v PHP, ASP

1

539

29.06.2009 17:51

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. session

v PHP, ASP

1

542

28.12.2008 13:43

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Session

v PHP, ASP

1

650

29.09.2008 0:28

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SESSION

v PHP, ASP

1

562

26.03.2009 19:36

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prihlasenie uzivatela

v PHP, ASP

4

688

10.08.2009 23:50

Tominator Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra