ASP.NET Security
by Nikola Majcen
Sadržaj
SQL Injection
Parameter Tampering
Information Leakage
Cross-Site Request Forgery
Cross-Site Scripting
Zaštita podataka
Denial od Service
ASP.NET Identity
O ASP.NET-u
Microsoftov razvojni okvir za �web aplikacije
Mogućnosti izrade:
WebForms
MVC
WebAPI itd.
SQL Injection
SQL Injection
Parametrizirani upit
(direktno ili kao stored procedure)
Sigurniji od prethodnog primjera
SQL Injection
Upotreba ORM-a (Entity Framework)
Najsigurniji način koji u pozadini koristi parametrizirane upite
Parameter Tampering
Rješenja:
Information Leakage
Nenamjerno odavanje informacija o �sustavu ili o greškama u sustavu
Information Leakage
Prevencija:
<customErrors mode="On"/>
Response.Headers.Set("Ime servera","Opis servera");� Response.Headers.Remove("X-AspNet-Version");� Response.Headers.Remove("X-AspNetMvc-Version");�
<trace enabled="false"/>�
<deployment retail="true" />
Cross-Site Request Forgery
Cross-Site Request Forgery
Prevencija:
Upotreba AntiForgeryToken-a
Potrebno je:
Kako funkcionira:
Cross-Site Scripting
Napad injektiranja programskog koda u web aplikaciju
�Vrste:
Cross-Site Scripting
Načini prevencije:
// Chrome & Safari� Response.AddHeader("X-WebKit-CSP", "default-src 'self'");�
// Firefox� Response.AddHeader("X-Content-Security-Policy", "default-src 'self'");
Zaštita podataka
SSL
Properties -> Enable SSL (port 44300)
<ImeProjekta>.csproj -> Promjena porta:
<IISExpressSSLPort>443</IISExpressSSLPort>
Zaštita lozinke
Zaštita baze podataka
Denial of Service
Čini resurs ili uslugu nedostupnom
Rješenje na strani servera:
ASP.NET Identity
Novi Microsoftov membership sustav
Koristi se za sve (MVC, WebForms, WebApi…)
Razne mogućnosti :)
Funkcionalnosti:
ASP.NET Identity
Unaprijed definirane klase i�tablice za osnovnu infrastrukturu
Omogućene opcije za:
Vrlo lako promjenjivo :)
Literatura
"Understanding Web Security Vulnerabilities and Preventing it in ASP.Net Applications"
"OWASP - SQL Injection Prevention Cheat Sheet"
"OWASP - Guide to SQL Injection"
"Query Parameterization Cheat Sheet"
"How To: Protect From SQL Injection"
"ASP.NET - Preventing SQL Injection Attacks"
"Preventing SQL Injection in ASP.NET"
"Securing your ASP.NET MVC Apps"
"Preventing Parameter Tampering in ASP.NET MVC"
"Understanding Web Security Vulnerabilities and Preventing it in ASP.Net Applications"
"OWASP - SQL Injection Prevention Cheat Sheet"
"OWASP - Guide to SQL Injection"
"Query Parameterization Cheat Sheet"
"How To: Protect From SQL Injection"
"ASP.NET - Preventing SQL Injection Attacks"
"Preventing SQL Injection in ASP.NET"
"OWASP Top 10 for .NET developers part 2: Cross-Site Scripting (XSS)"
"Preventing XSS in ASP.NET Made Easy"
"Hack Proof Your ASP.NET Application From Cross Site Scripting (XSS)"
"What is SSL and How to Implement in ASP.Net Web Application"
"Configuring an ASP.NET project for development with SSL"
Hvala na pažnji