Archive for tag: sikkerhed

Min MVC sikkerhedscheckliste

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