Middle+
Kuidas õigesti genereerida autoriseerimis tokenid? Mida peaks sisaldama token, et kaitsta end jõu rünnakute eest?
sobes.tech AI
Vastus AI-lt
Õige autoriseerimise tokenite generatsioon peaks tagama unikaalsuse, turvalisuse ja kaitse brute force rünnakute eest. Tavaliselt kasutatakse krüptograafiliselt turvalisi juhuslikke väärtusi või allkirjastatud JWT-sid.
Mida peaks sisaldama token, et kaitsta brute force:
- Unikaalne identifikaator (näiteks juhuslik UUID või nonce), et tokenid ei korduks.
- Aja märk või kehtivusaeg (expiration), et piirata tokeni eluiga.
- Digitaalne allkiri või HMAC, et vältida tokeni võltsimist.
- Minimaalne vajalik info autentimiseks, ilma liigsete andmeteta.
Näide tokeni genereerimisest Pythonis ja secrets teegiga:
import secrets
import time
def generate_token():
token = secrets.token_urlsafe(32) # krüptograafiliselt turvaline juhuslik token
expiration = int(time.time()) + 3600 # token kehtib 1 tund
return {'token': token, 'expires_at': expiration}
Brute force rünnakute kaitseks on samuti oluline piirata katsete arvu ning kasutada blokeerimis- või viivituse mehhanisme.