preventing xsrf in asp.net core apps

13

Click here to load reader

Upload: fiyaz-hasan

Post on 15-Apr-2017

87 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Preventing XSRF in ASP.NET CORE apps

.NET CORE Security Fiyaz Hasan

Page 2: Preventing XSRF in ASP.NET CORE apps

Preventing XSRF in ASP.NET Core

Page 3: Preventing XSRF in ASP.NET CORE apps

XSRF…what?

Page 4: Preventing XSRF in ASP.NET CORE apps

“Cross Site Request Forgery

(XSRF/CSRF) is a type of security breech where a hacker can trick the user

into making unwanted requests for a web

application where the user is already authenticated

Page 5: Preventing XSRF in ASP.NET CORE apps

Authentication Systems

Page 6: Preventing XSRF in ASP.NET CORE apps

Cookie Based Browser Server

Authenticateusername=…&password=…

HTTP 200 OKSet-Cookie: session=…

GET /controller/actionCookie: session=…

HTTP 200 OK{ data: “data“ }

Find and desirialize session from database

Page 7: Preventing XSRF in ASP.NET CORE apps

Are Cookies Evil?

Page 8: Preventing XSRF in ASP.NET CORE apps

Token Based Browser Server

Authenticateusername=…&password=…

HTTP 200 OK{token: ‘JWT’}

GET /api/actionAuthorization: Bearer {JWT}

HTTP 200 OK{ data: “data“ }

Validate Token

Page 9: Preventing XSRF in ASP.NET CORE apps

User Token & Antiforgery Token

Aren’t Same

Page 10: Preventing XSRF in ASP.NET CORE apps

Antiforgery SystemBrowser Server

Particular Route Request

HTTP 200 OKSet Cookie:

antiforgery.token=…

POST /controller/actionHidden __RequestVerificationToken field

HTTP 200 OK{ data: “data“ }

Checks if this token is validated

Create And Store Token then send the

token in the response

Page 11: Preventing XSRF in ASP.NET CORE apps

Built-in support for MVC

Forms

HtmlHelpersHtml.BeginForm("Add", "Transaction")

TagHelpers<form asp-controller="Transaction" asp-

action="Add“>

Page 12: Preventing XSRF in ASP.NET CORE apps

Antiforgery Middlerware

Page 13: Preventing XSRF in ASP.NET CORE apps

Thanks!Any questions?You can find me at:@FiyazBinHasanwww.fiyazhasan.me