Domanda

Sto scrivendo un'applicazione ASP.Net MVC che utilizza l'autenticazione NTLM, quindi gli utenti non hanno bisogno di registrarsi presso il sito. Se ho disabilita l'accesso anonimo, posso usare User.Identity.Name come chiave di proprietà nel database. Quello che mi piacerebbe fare è quello di essere in grado di emettere una ricerca come

from station in db.stations where station.user == username select *;

È questo basta conoscere in modo affidabile chi è l'utente, o c'è qualche modo un utente brutto potrebbe falsificare la stringa di nome e ottenere l'accesso a dati che non dovrebbero?

È stato utile?

Soluzione

Il nome è riempito dalla sessione in modo che il pirata informatico dovrebbe falsificare il cookie di sessione di dirottare la sessione dell'utente e ottenere l'accesso. Il cookie di sessione ASP.NET è crittografato per aiutare a prevenire questo, ma si dovrebbe assolutamente avere la sessione scade in modo che un attaccante determinato non può spendere un tempo illimitato cercando di rompere la cifratura. Impostare i cookie per HttpOnly può anche aiutare a prevenire uno script dannoso nel browser di accedere al biscotto.

Ecco un di riferimento per le migliori pratiche per la protezione di un ASP. NET 2.0 sito web. Gran parte di essa è ancora applicabile, ma può avere bisogno di essere tradotti a MVC.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top