PHP szerveroldali form ellenőrzés?
A CSRF token használatát javaslom én is.
jó módszer:
1. generálsz egy hashelt, salt-ozott kódot, $_SESSION változóba teszed
2. az űrlapba beteszed hidden inputba ezen a néven (nem értékként)
3. kiértékeléskor (szerveroldalon) ellenőrzöd, hogy a munkamenetváltozóban szereplő nevű input létezik-e
Ha létezik, akkor a te oldaladról jött a request, ha nem, akkor cross-site request forgery áldozata vagy.
A session != suti.
A session ID az ami a sutiben van max, a session tartalma mar a szerver oldalon tarolodik.
Plusz a curl itt nem jatszik, ezzel azt gatoljak meg, hogy random idegen oldalon megadott adatokkal feltoltott formot tudjon a user (akaratlanul) bekuldeni a te oldaladon at.
Azaz van egy pl jelszo cserelo formod es egy usered aki be van lepve a rendszerbe.
Valamint van egy gonosz weboldal, ahova beteved a te kis usered.
Na most a tamado gonosz weboldal csinalhat egy rejtett formot amiben mit ad isten PONT azok az adatok vannak amiket a te jelszo cserelo oldalad is var (mondjuk jelszo, jelszo2) es ezt automatikus "elkuldi".
A bongeszo amikor elvegzi a form kuldest, mivel latja, hogy van session id-s sutid a te sajat oldaladhoz, azt is fel fogja adni.
Aminek eredmenyekent pedig a "jo siteon" belepett usert fog latni a rendszer es fogadni fogja a form adatokat es lecsereli a jelszavadat, amirol te alapvetoen talan nem is feltetlenul tudsz.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!