Skip to content

Instantly share code, notes, and snippets.

@VaclavSir
Created November 12, 2013 17:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save VaclavSir/7435398 to your computer and use it in GitHub Desktop.
Save VaclavSir/7435398 to your computer and use it in GitHub Desktop.
Kontrola formulářů

Projít definici formuláře:

  • CSRF (addProtection).
  • Validační pravidla nepropustí hodnotu, kterou nelze zpracovat (onSuccess).
    • Pokud formulář plní entitu, validační pravidla musí být přinejmenším stejně přísná, jako pravidla na entitě a v databázi. Kontrolovat jak podle deklarace entity, tak podle DB tabulky, občas tam máme nesrovnalosti (ty nejlépe přitom odstranit).
    • Pokud prvek není setRequired, tak si zpracování musí poradit s prázdným řetězcem, nebo ho změnit na něco, s čím si poradí (třeba NULL).
    • Pokud SelectBox má prompt, tak může být hodnotou NULL (pokud není setRequired).
  • Formulář nemůže instancovat někdo, kdo k tomu nemá oprávnění.
    • Pokud celý presenter s tovární metodou vyžaduje minimálně stejný stupeň oprávnění, jako formulář, tak je splněno.
    • Jinak je nutné přidat nějakou kontrolu do té továrny.
  • Při zpracování se nedůvěřuje skrytým polím.
    • Například editační formulář ideálně nemá ID v HiddenField, ale v názvu komponenty a oprávnění k editaci dané položky se kontroluje při vytváření té komponenty.

Vyzkoušet:

  • Add/edit form zkoušet zvlášť jako editační a zvlášť jako přidávací.
  • Odeslání formuláře bez jakýchkoli úprav. Musí buďto projít, nebo korektně vyfakovat.
  • Odeslání formuláře s minimálními možnými úpravami podle validačních pravidel. Dtto.
  • Všemožné nesmyslné vstupy.
  • Všemožné nesmyslné vstupy s vypnutým javascriptem. Například špatný formát datumu (o ten se normálně stará nějaký datepicker, ale ten se taky nemusí vždy načíst).

Pokud by byl čas na psaní testů:

  • Automatické testy na všechno to, co výše zkouším ručně.
  • Test, že formulář obsahuje všechna očekávaná pole.
  • Test, že výsledné HTML obsahuje všechna definovaná pole.
@zbycz
Copy link

zbycz commented Nov 12, 2013

má smysl dávat CSRF i do administrace?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment