3 messaggi dal 07 marzo 2017
Ciao a tutti,

ho sviluppato un progetto asp.net in C#, non seguendo il paradigma MVC. Vorrei sapere se c'è un modo per implementare una protezione contro la vulnerabilità di tipo cross site request forgery. Girovagando ho trovato questo pacchetto: http://anticsrf.codeplex.com/ tuttavia non credo sia configurabile con il mio progetto.

Pertanto, vorrei riuscire a implementare questa protezione senza modificare il source di ogni pagina.

Grazie a tutti.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Marco,
ASP.NET MVC mette a disposizione un apposito helper method che riesce a generare un campo hidden nella pagina e il relativo cookie in un colpo solo.

Metti questo nella tua view Razor, subito dentro al form:
@Html.AntiForgeryToken()


E poi, lato server, poni l'attributo ValidateAntiForgeryToken sul controller o sulla singola action che riceverà i dati dal form.
public InvoiceController : Controller {

   [HttpPost]
   [ValidateAntiForgeryToken]
   public ActionResult PostInvoice(Invoice invoice) {
      //Do something
   }
}


E' documentato qui:
https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/preventing-cross-site-request-forgery-csrf-attacks#anti-forgery-tokens-in-aspnet-mvc
E qui trovi un esempio:
https://www.codeproject.com/script/articles/articleversion.aspx?aid=266065&av=395284

ciao,
Moreno
Modificato da BrightSoul il 21 settembre 2017 08.03 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.