fmfi-svt / fajr

Frontend pre univerzitný systém AIS2 (vývoj skončil)
https://fajr.fmph.uniba.sk/
MIT License
0 stars 1 forks source link

XSRF protection #30

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
do buducnosti - chceme nejaky sposob, ako si podpisovat requesty a chceme 
podpisovat kazdy post request, inak nam hrozi request forgery (i ked je to 
trochu tazsie ako s get requestami, ale aj tak)

Original issue reported on code.google.com by ppersh...@gmail.com on 9 Jul 2010 at 9:08

GoogleCodeExporter commented 8 years ago
Štandardne sa to robí pridaním tajného tokenu do každého formuláru, 
ktorého existencia sa overuje pri obdržaní POST dát.
Overovanie sa dá jednoducho spraviť v triede Input, pričom môžme 
špecifikovať, ktoré parametre akceptujeme len s tokenom.
Najjednoduchšie bude tento token uložiť do session a mať pre všetky 
formuláre rovnaký.
Ešte lepšie by bolo mať pre každú inštanciu formuláru vždy iný token, 
ale to by sme už museli nejak riešiť ich ukladanie. A nevidím v tom až 
taký veľký prínos.

Zaujímavá otázka je, ako tam tieto tokeny vkladať.
Tu by som sa priklonil k možnosti manuálne ich vpisovať pri každom 
generovaní formuláru.
Nemáme ich tak veľa, a ak sa na to niekde zabudne, tak by sa na to malo hneď 
prísť, ak človek nezabudne daný parameter v triede Input označiť ako 
secure.

Get requesty by som neriešil, a ak sú nejaké meniace stav, tak by som ich 
prerobil na POST.

Spravil by som teda triedu CSRFProtector na generovanie a overovanie tokenu.

Original comment by majak47 on 10 Jul 2010 at 1:05

GoogleCodeExporter commented 8 years ago
Ina moznost je token vygenerovat na zaklade url (napriklad zhashovat vsetky 
parametre + session id a hash zakryptovat servervym klucom). Toto by malo 
stacit, pretoze to vyraba unikatne tokeny pre kazdy iny request a tokeny 
expiruju so session.

Original comment by ppersh...@gmail.com on 10 Jul 2010 at 4:29