Bezbednost: limit veličine upload tela, anti-enumeracija pri prijavi, strings.Cut
- CSRF middleware postavlja MaxBytesReader (6 MB) za multipart pre parsiranja — pojedinačni upload handleri nisu mogli da ograniče veličinu jer čitanje _csrf polja već parsira celo telo - prijava: dummy bcrypt poređenje kada korisnik ne postoji, da vreme odgovora bude isto kao kod postojećeg korisnika (sprečava enumeraciju imena) - podesavanja: strings.Split(...)[0] zamenjen sa strings.Cut
This commit is contained in:
@@ -98,6 +98,8 @@ func (h *Handler) Prijava(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
korisnik, err := h.KorisniciRepo.DohvatiPoImenu(r.Context(), korisnickoIme)
|
||||
if err != nil {
|
||||
// izjednačavamo vreme odgovora sa slučajem postojećeg korisnika (anti-enumeracija)
|
||||
auth.IzjednaciVremeProvere(lozinka)
|
||||
_ = h.PokusajiRepo.Zabeleži(r.Context(), ip, korisnickoIme, false)
|
||||
_ = h.LoginIstorijsaRepo.Zabeleži(r.Context(), nil, ip, r.UserAgent(), "korisnik_ne_postoji", false)
|
||||
auth.LogNeuspehPrijave(ip, korisnickoIme, "wrong_user")
|
||||
|
||||
Reference in New Issue
Block a user