Kezdőoldal » Számítástechnika » Weblapkészítés » Hogy lehet védekezni a jelszóp...

Hogy lehet védekezni a jelszópróbálgatós támadás ellen?

Figyelt kérdés

Azon kívül hogy a felhasználókat erős jelszó használatára kötelezzük . Gondolom session-el felesleges trükközni mert a támadó úgysem menti le. A nagyobb weboldalak pl. facebook hogy oldják ezt meg ?

A válaszokat előre is köszönöm !


2016. dec. 30. 13:32
1 2 3
 11/29 anonim ***** válasza:
100%

Akkor kombináld a dolgokat.

Egy IP-ről max 3 hibás bejelentkezés, utána captcha.

Ha ugyanarra a user accountra (akár más IP-ről is) 3 hibás bejelentkezés jön, akkor az adott user acchoz minden további bejelentkezésnél (az első sikeresig) szintén captcha.

2016. dec. 30. 20:04
Hasznos számodra ez a válasz?
 12/29 A kérdező kommentje:
Ok így lesz ! Köszönöm mindenkinek a segítséget . Ha valakinek van még ötlete akkor kíváncsi vagyok rá !
2016. dec. 30. 20:22
 13/29 anonim ***** válasza:
100%
Gondolom, az alap, hogy a jelszót nem tárolod, csak hash-t, és azt is sózva.
2016. dec. 30. 21:30
Hasznos számodra ez a válasz?
 14/29 anonim ***** válasza:
100%

+1 a hash-re, a bcrypt tökéletes, a sózás és minden meg is van oldva vele. Használd azt.


A másik meg, hidd el ha próbálkoznak is, előbb kifogynak a proxyk-ból, mint hogy eltalálják a jelszót.

Pl még ha 5 próbálkozás/jelszó-nál is dobjuk a captcha-t, akkor is már 100 próbálkozáshoz 20 proxy-t végig kell járni.


Egy kisebb jelszó gyűjteményben is azért pár száz vagy ezer darab jelszó szokott lenni.

2016. dec. 30. 21:34
Hasznos számodra ez a válasz?
 15/29 A kérdező kommentje:
Persze sózom a hash-t Meg ilyen xss , sql injection -t is lekezelek . Már jól működik ez a 5 próba után qaptcha amíg nem ad jó jelszót csak az a hátránya hogy mikor a valódi felhasználó megpróbál bejelentkezni (a támadás után) akkor be kell írnia neki is a qaptcha-t . Mindig a facebook-ot hozom fel példának de érdemes megnézni ,hogy az 16 próba után letilt fél órára de egy másik gépről már nem idegesít qaptchakkal és beenged.
2016. dec. 31. 14:07
 16/29 A kérdező kommentje:
A qaptcha-nál az ellenőrzés után rögön unset-eljem a session-t ugye ?
2016. dec. 31. 16:12
 17/29 anonim ***** válasza:
81%

Amit te keresel az a token alapú védelem. A lényege, hogy minden formhoz hozzárendelsz egy tokent, amely az oldal betöltődésekor generálódik. A post vagy akár get eseménykor megvizsgálod, hogy a form tokenje létezik e, és ha igen, akkor megbízol benne jöhet. Ha nem létezik a token, akkor valószínűleg hamis vagy már lejárt (vagyis lehet lopott), így nem bízol meg benne és a feldolgozást elutasítod.


A token átlag user számára láthatatlan, csak te tudsz róla jó esetben. Viszont, ha a támadó kinézi a tokent a kódból, akkor sincs gond, mert azzal a tokennel csak 1 támadást tud indítani. Többet nem felhasználható a token.


Az ip cím alapú védelemmel az a baj, hogy már egy kezdő támadó is, akit komolyan lehet venni ismeri a vpn-t. Azon keresztül pedig akár több ezer ip címről is indíthat kérést az oldaladra. Komoly támadók esetén biztos, hogy nem közvetlenül egy ip címről fognak támadni.


A capcha-val pont az a baj, amit te magad is említettél. A felhasználói élményt csökkenti. Ezen kívül ha nem valamilyen komolyabb plugint használsz erre, akkor úgyis meg fogják kerülni. A komoly pluginokkal pedig az a baj, hogy egyrészről meg kell bíznod bennük, másrészről bármikor leállíthatják a fejlesztést, ami azt jelenti, idővel valaki talál ellenszert hozzá.


Az pedig nagyon ritka, és egyáltalán nem vall komoly támadóra, aki elkezdi egyesével beírni a jelszavakat és próbálgatni az által, hogy frissíti a weboldalt. Még bottal is az oldal frissítés miatt jelentősen megnő a feltörési idő. Ezen kívül ha alkalmazol olyat, hogy esetleg 3 próbálkozás után 1, 5 próbálkozás után 3, 10 próbálkozás után 15 percre tiltod a form küldését (adott esetben a bejelentkezést), akkor ez tovább növeli a feltörési időt.


A token további előnye, hogy bármilyen form esemény esetén használhatod, akár ajax kérések esetén is. Csak az ajax esetén figyelni kell, hogy js-el cseréld a tokent a kérés küldése után, ha csak nem 1x használatos egy form. Például hozzászólásoknál érdemes frissíteni, de mondjuk egy e-mail feliratkozásnál már nem feltétlenül.

2017. jan. 1. 22:55
Hasznos számodra ez a válasz?
 18/29 A kérdező kommentje:
Köszönöm a részletes választ ez jól hangzik de ha jól értem kikerülhető ez is . Mert ha valaki megírja a token visszafejtőt akkor írhat egy próbálgatót .
2017. jan. 1. 23:21
 19/29 anonim ***** válasza:

Ha jól sejtem a korábbi válaszoló a CSRF-re gondolt, amikor a tokent említette.

Ezek általában nem vagy-vagy megoldások a captcahval és az IP alapú rate limittel, hanem egyszerre szoktak lenni.

2017. jan. 2. 00:11
Hasznos számodra ez a válasz?
 20/29 anonim ***** válasza:
52%

"Köszönöm a részletes választ ez jól hangzik de ha jól értem kikerülhető ez is . Mert ha valaki megírja a token visszafejtőt akkor írhat egy próbálgatót."


Nem tudom mire gondolsz, de a token az bármi lehet. Általában, ha én használom, akkor egy 10 karakter hosszú random hash szokott lenni.


Itt a lényeg, hogy az oldal betöltésekor generálsz egy random hash-t, amit tárolsz akár session-ben akár adatbázisban. Majd ezt belerakod egy hidden inputba. Ez elpostolódik a formmal együtt és mielőtt feldolgoznád az információt ellenőrzöd, hogy a token létezik e a sessionben vagy az adatbázisodban.


Itt nincs semmi visszafejteni való. Még akár ki is írhatod az oldaladra, hogy mivel generálod a token hash-t az sem számít. Mert a támadó akkor sem tud a session-be belecsempészni, vagy akár adatbázisba beleírni saját tokent.


A token felhasználásakor pedig, amikor azonosítottad és jöhet a post, akkor megszünteted a session tokent (vagy törlöd a rekordot a db-ből). Így újra kell generálni az oldalt, hogy valaki a formhoz új tokent kapjon. Illetve minden tokennek adasz lejárati időt. Mondjuk egy login esetén 5 percet. Ha pedig valahol nem tudod mennyi idő lenne elég akkor adsz 1 órát. Általában ennyi elég szokott lenni. És ha valaki 1 óra után akarja magát azonosítani a tokennel, akkor is elutasítod. De ez persze plussz bonyolítás.


---


"Ha jól sejtem a korábbi válaszoló a CSRF-re gondolt, amikor a tokent említette. "


CSRF - cross-site request forgery


Ez a támadási típus neve és nem a védelemé :) persze sok helyen CSRF védelemnek hívják, de ez a CSRF elleni védelem valójában. A kérdező problémája egyébként pontosan ez. Általánosságban megfogalmazva az ő gondja az, hogy a felhasználóban nem bízik meg, pontosabban a felhasználó által küldött információkban.


Erre való a token :)

2017. jan. 2. 08:48
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!