Jeg har flg. chekliste, som jeg bruger ifm. udvilking af
systemer der baserer sig på ASP.NET MVC. En del af listens punkter
kan også overføres på andre platforme og frameworks.
Listen er en foreløbig liste, dvs. der kan (og vil givetvis)
kommer opdateringer til den, men dette er altså hvad jeg har
pt.
Autorisation
- Alle sider (controller actions) der skal være beskyttet, har en
Authorize atribut. Alternativt er der opsat et globalt filter,
således alle sider er beskyttet.
- Alle sider der har Authorize-atribut tilknyttet leveres over
https (SSL). Der må IKKE være indhold på siden, som kommer fra en
"untrusted" kilde. Der må helst ikke være noget indhold overhovedet
der leveres over http på disse sider.
- Loginsiden leveres ligeledes, i sin helhed, over https (dvs.
ingen resurser på siden må leveres over http).
- Cookies der har noget med brugeridentificering eller på anden
måde indeholder følsomme data, leveres kun over https (dvs. secure
er sat på cookien).
- Cookies i øvrigt, leveres kun over httpOnly, med mindre der
skal arbejdes med cookies på klienten.
XSS (Cross Site Scripting)
- Alle informationer der vises i sider er encoded (HTML,
HTML-atribut, JavaScript, Url med evt. flere).
- AntiXSS er installeret og benyttes til encoding.
- INGEN sider tillader HTML-input (uden der er en rigtig god
grund til det). Benyt i stedet BB-codes til formatering af
indholdet, hvis det er nødvendigt, at brugeren har denne
mulighed.
- Request-validation er slået til for hele sitet.
CSRF (Cross Site Request Forgery)
- INGEN GET-metoder ændrer på systemets tilstand (dvs. der må kun
returneres tilstand ifm. GET-metoder).
- Alle formularer har AntiForgeryToken og action-metoder der
modtager formulardata har ValidateAntiForgeryToken-atributten
tilknyttet.
Øvrige
- CustomErrors i web.config er sat til "On"
- Alle formularer er beskyttet mod "overposting", dvs. at der
sendes flere data med end forventet som modelbinder automatisk
fletter ind i modellen på serveren.
Listen er lidt indforstået, men jeg vil se om jeg kan få lavet
nogle artikler omkring nogle af emnerne for at kaste lidt mere lys
over, hvordan man sikrer sig disse regler overholdes.
Andre resurser