Utilizarea unui jeton de sesiune sau nonce pentru cerere de protecție falsă între site-uri (CSRF)?

Am moștenit un cod care a fost atacat recent în care atacatorul a trimis trimiteri repetate de la distanță.

Am implementat o prevenire folosind un jeton de autentificare a sesiunii pe care îl creez pentru fiecare utilizator (nu ID-ul sesiunii). În timp ce realizez că acest atac specific nu este CSRF, am adaptat soluția mea din aceste postări (deși datate).

Cu toate acestea, se simte în continuare că există o anumită vulnerabilitate aici. Deși înțeleg că nimic nu este 100% sigur, am câteva întrebări:

  • Un potențial atacator nu ar putea începe pur și simplu o sesiune validă, apoi include ID-ul sesiunii (prin cookie) cu fiecare dintre solicitările lor?
  • Se pare că o nonce ar fi mai bună decât jetonul sesiunii . Care este cel mai bun mod de a generați și urmăriți un nonce ?
  • Am dat peste câteva puncte despre aceste soluții fiind doar o singură fereastră. Ar putea cineva să detalieze acest punct?
  • Aceste soluții necesită întotdeauna o sesiune? Sau aceste jetoane pot fi create fără o sesiune? ACTUALIZARE , această pagină specială este doar un singur formular de pagină (fără autentificare). Deci, a începe o sesiune doar pentru a genera un token pare excesiv.
  • Există o soluție mai simplă (nu CAPTCHA) pe care aș putea să o implementez pentru a proteja împotriva acestui atac special care nu ar folosi sesiuni.

În cele din urmă, caut pentru o mai bună înțelegere, astfel încât să pot implementa o soluție mai robustă.

10
задан Jason McCreary 5 August 2011 в 16:21
поделиться