Utisci korisnika

Veoma sam zahvalna na Vašem brzom odgovoru i želela bih da Vam se zahvalim na pažnji koju ste pokazali. Radica Nedelčev - Beograd

"Slučajno sam na nekoj diskusiji Infostuda našla vaš link i prosto sam zapanjena, obradovana i neizmerno ponosna što i u SRBIJI možemo da se služimo e-learning opcijom usavršavanja."…


Kompletna lista utisaka

Testiranje online

Arhitektura računara

Za one koji žele da znaju više.

Windows OS

Ovo bi svakako trebalo da probate.

Odnosi s javnošću

Koliko znate PR?

Pogledajte još neke od testova

Newsletter

Ukoliko želite da Vas redovno obaveštavamo o novostima sa Link eLearning sajta prijavite se na našu newsletter listu.

Ime:

Prezime:

Email:


Anketa

Arhiva anketa

BAZA ZNANJA


Kurs: Advanced Web Application Technologies

Modul: Sigurnost ASP.NET veb aplikacija

Autor: Goran Aritonović

Naziv jedinice: Sigurnost veb aplikacija


Materijali vezani uz ovu lekciju:

- Test sigurnost veb aplikacija
- Sigurnost veb aplikacija (PDF dokument)



Autentifikacija i autorizacija

Autentifikacija je proces dobijanja identifikacionih podataka od korisnika kao što su korisničko ime i šifra. ASP.NET obezbeđuje 3 autentifikaciona mehanizma: windows autentifikacija, forms autentifikacija i passport autentifikacija. Pošto je korisnik autentifikovan u procesu autorizacije se definiše kojim resursima i sa kakvim pravima korisnik može da pristupi.


ASP.NET autentifikacioni metodi

Windows-bazirana autentifikacija se oslanja  na Windows operativni sistem i IIS. Korisnik zahteva web stranu i taj zahtev prolazi kroz IIS. Pošto se identifikacioni podaci verifikuju od strane IIS-a web strana se šalje korisniku. Windows autentifikacija  se koristi u intranet okruženjima. Kod autentifikacije bazirana na formi neautorizovani zahtevi se preusmervaju na HTML formu ma kojoj se prikazuje poruka korisniku. Na formi za logovanje korisnik unosi identifikacione podatke i sabmituje HTML formu a sistem šalje autentifikacioni cookie korisniku. Microsoft Passport autentifikacija je centralizovani autentifikacioni servis. Radi na principu web servisa.

<system.web>
<authentication mode="Windows" />
</system.web>

 

Windows autentifikacija

IIS upoređuje informacije koje je uneo korisnik sa windows  korisničkim nalozima. Svi korisnici web aplikacije kod ove autentifikacije moraju imati windows nalog. Obezbeđivanje web aplikacije korišćenjem windows autentifikacije sastoji se od 4 koraka: konfigurisanje IIS-a, podešavanje autentifikacije u Web.config fajlu, podešavanje autorizacije u Web.config fajlu i slanje identifikacionih podataka od strane korisnika. Ovde je prikazan deo web.config fajla gde je setovana windows autentifikacija web sajta.

<system.web>
<authentication mode="Windows" />
</system.web>

Autentifikacija bazirana na formi

Omogućava aplikaciji da obezbedi sopstveni korisnički interfejs za logovanje. Autentifikacija bazirana na formi je pogodna je za internet aplikacije. Mora se obezbediti strana za logovanje.
Redirekcija neautentifikovanih korisnika  vrši se na stranu za logovanje. Definiše se ime autentifikacionog cookie-ja, strana za logovanje i vreme života cookie-a. Može se koristiti permanentni cookie za koga se definiše vreme života kao i privremeni autorizacioni cookie koji živi u u toku jedne sesije korisnika. Sledi prikaz dela web.config fajla sa definisanom Forms autentifikacijom. Strana za logovanje je login.aspx a cooki ima name atribut ASPXUSERDEMO.

<authentication mode="Forms">
<forms name=".ASPXUSERDEMO" loginUrl="login.aspx" protection="All" timeout="60" />
</authentication>

 

Definisanje korisnika unutar koda

Za slučaj malog broja korisnika moguće im je dodeliti fiksno korisničko ime i šifru u kodu. Pozivom metode FormsAuthentication.RedirectFromLoginPage se autentifikovani korisnik šalje na zaštićenu stranu koju je zahtevao ili na podrazumevanu stranu ukoliko je prvo pristupio strani za logovanje. Klikom na dugme Button1 generiše se događaj Button1_Click vrši se odjava autentifikovanog korisnika sa web sajta odnosno brisanje autentifikacionog cookie-a.

if ((TextUserName.Text == “korisnickoIme") && (TextPass.Text == "password"))
 {
   FormsAuthentication.RedirectFromLoginPage(UserEmail.Value,
   PersistCookie.Checked);
}
 else
 {
  Poruka.Text = “Pogresno korisnicko ime ili sifra";
 }

private void Button1_Click(object sender, System.EventArgs e)
{
// unisti korisnikov cookie
FormsAuthentication.SignOut();
// vrati ga na pocetnu stranu
Response.Clear();
Response.Redirect(“login.aspx");
}


Definisanje korisnika u web.config fajlu

Prikazaćemo način dodavanja korisnika web aplikacije korišćenjem web.config fajla. Kreiran je korisnik čije je korisničko ime link i šifra link, kao i korisnik čije je korisničko ime test i sifra test.Ukoliko želimo da na web sajtu postoje i nezaštićene strane tj. strane kojima mogu pristupati neautentifikovani korisnici onda se za svaku od tih strana definiše location tag koji ima svoju autorizacionu sekciju.

<authentication mode="Forms">
      <forms name=".ASPXUSERDEMO" loginUrl="login.aspx"
         protection="All" timeout="60" >
        <credentials passwordFormat= "Clear">
          <user name="link" password="link"/>
          <user name="test" password="test"/>
        </credentials>
      </forms>
</authentication>
     <authorization>
      <deny users="?" />
     </authorization>

<location path="Nezasticena strana.aspx">
    <system.web>
      <authorization>
          <allow users="*" />
      </authorization>
    </system.web>
  </location>


Definisanje korisnika u bazi podataka

Kreira se tabela u bazi podataka koja sadrži ID korisnika njegovo korisničko ime i šifru. Kada korisnik unese korisničko ime (koje mora biti jedinstveno ) i šifru, izvršava se grupa sql komandi koja na osnovu unetog korisničkog imena pronalazi odgovarajući red u tabeli i proverava da li unteta šifra odgovara šifri u bazi.
Ukoliko je šifra tačna korisnik se prebacuje na zaštićenu stranu.

Primer realizacije strane za logovanje

Ovde je dat primer realizacije strane za logovanje kada su korisnici definisani u web.config fajlu. U ViewState promenljivoj brojPokusaja čuva se broj pokušaja logovanja. Ukoliko je broj pokušaja veći od 3 korisnik se prebacuje na stranu Zabranjeno.htm.

// Citaj username/password iz <credentials>.
        if (FormsAuthentication.Authenticate(UserEmail.Value, UserPass.Value))
        // Ako je OK idi na zasticenu stranu
        FormsAuthentication.RedirectFromLoginPage(UserEmail.Value, false);
        else
        {
        // Obrisi sifru
        UserPass.Value = "";
        // pri trecem neuspelom pokusaja prebaci na html stranu  Zabranjeno.htm
        if (System.Convert.ToInt32(ViewState["brojPokusaja"]) > 2)
        Response.Redirect("Zabranjeno.htm");
        else
        // inkrementiraj broj pokusaja
        ViewState["brojPokusaja"] =
        System.Convert.ToInt32(ViewState["brojPokusaja"]) + 1;

Autorizacija korisnika i uloga

Definiše se u web.config fajlu unutar sekcije za autorizaciju kao što je to prikazano u nastavku. Pristup zaštićenim stranama sajta je omogućen korisniku korisnik1, svim korisnicima koji pripadaju ulozi Admins dok je pristup zabranjen svim ostalim korisnicima.

// deo web.config fajla
<authorization>
<allow users=“korisnik1" />
<allow roles="Admins" />
<deny users="*" />
</authorization>


Kreiranje korisnika i uloga za web sajt

ASP.NET 2.0 pruža efikasan alat za lako kreiranje korinika web sajta. Takođe je moguće kreirati odgovrajuće uloge a onda korisnike dodeliti u ulogu. Podaci se smeštaju u lokalnu bazu ASPNETDB koja se nalazi u App_Data folderu.


 

Microsoft pasport autentifikacija

Princip rada  Microsoft pasport autentifikacija je sledeći: klijent zahteva zaštičenu web stranu sa web servera, zahtev se prosleđuje ka IIS koji identifikuje korisnika kao anonimnog(aninimus) i prosleđuje zahtev ASP.NET-u. ASP.NET proverava postojanje autentifikacionog cookia kod klijenta, ukoliko cookie ne postoji vrši se redirekcija zahteva na Passport.com web sajt gde se vrši autentifikacija. Passport generiše stranu za logovanje koja se šalje do klijenta .Ukoliko su uneti podaci tačni Passport autentifikuje korisnika i vraća mu cookie sa autentifikacionom kartom. Klijent sada upućuje zahtev web serveru zajedno sa autentifikacionom kartom. IIS ponovo vrši autentifikaciju korisnika kao aninimnog i ASP.NET autentifikuje korisnika bazirano na cookie-u.

 


Smatrate da je ova lekcija korisna?  Preporučite je. Broj preporuka:0


Molimo Vas unesite svoje podatke i dobićete pristup besplatnim lekcijama.

Ime: 
Prezime: 
Email: