close up shot of keyboard buttons

Como fazer fuzz test em requests HTTP (parte 2)

Na primeira parte desse post, vimos como utilizar o fuzz test para gerar payloads automaticamente em nossos testes, o que nos ajudou a encontrar problemas quando o payload não vinha no formato que esperávamos.

Nessa segunda parte, vamos utilizar o fuzz para gerar os inputs que serão utilizados nos campos de um payload correto.

Utilizando o mesmo código do post anterior, antes de começar, vamos fazer uma pequena mudança na validação de e-mail. Além de validar se ele foi preenchido, vamos validar se o e-mail é válido.

Para isso, vamos criar um novo erro e um else para quando o valor do e-mail não esteja vazio.

...

ErrEmailRequired = errors.New("Email is required")

ErrEmailInvalid = errors.New("Email is invalid")

...

if p.Email == "" {
		return ErrEmailRequired
} else {
		rgx := regexp.MustCompile("^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$")
		if !rgx.MatchString(p.Email) {
			return ErrEmailInvalid
		}
}
...
Leia mais »