Gliwice 2004 Systemy i Narzędzia Baz Danych z Dostępem Przez Internet Klasyczne ASP cz.2.

Slides:



Advertisements
Podobne prezentacje
20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Advertisements

Decyzje projektowe w .NET Framework
18/11/ Języki programowania 1 Piotr Górczyński Biblioteki.
Bezpieczeństwo aplikacji WWW
Zabezpieczenia w programie MS Access
ADAM Active Directory w trybie aplikacyjnym
Autor Roman Jędras Prowadzący: dr inż. Antoni Izworski Przedmiot:
Uwierzytelnianie i autoryzacja dostępu do portali
SIECI KOMPUTEROWE (SieKom) PIOTR MAJCHER WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU W SOCHACZEWIE Zarządzanie.
27/09/ Języki programowania 1 Piotr Górczyński Obsługa błędów.
20/09/ Języki programowania 1 Piotr Górczyński Kreator form.
18/11/ Języki programowania 1 Piotr Górczyński Łączenie z bazą danych.
Arkadiusz Twardoń ZTiPSK
Wykład 2. Wprowadzenie do architektur systemów rozproszonych
Systemy operacyjne Bibliografia:
Proxy (WWW cache) Sieci Komputerowe
Programowanie wizualne PW – LAB5 Wojciech Pieprzyca.
Enteprise Java Beans Emil Wcisło.
Wzorce projektowe w J2EE
Artur Szmigiel Paweł Zarębski Kl. III i
Rozproszone bazy danych
Systemy zarządzania treścią CMS
1 Podstawy informatyki H. P. Janecki- 2006_ Systemy Operacyjne W6.
Technologie informacyjne MCE Pudełko. Zakładanie strony internetowej Technologie informacyjne Marek Pudełko.
JOOMLA – nowoczesny system portalowy open source
Bezpieczeństwo baz danych
Gliwice 2004 Systemy i Narzędzia Baz Danych z Dostępem Przez Internet Klasyczne ASP cz.1.
Przykład włamania do aplikacji internetowej poprzez modyfikację zapytań SQL Skrypty ASP Serwer bazy danych MS SQL Server Piotr Kuźniacki BDi.
PRACA W DOMENIE Różnice użytkowe między pracą w domenie i grupie roboczej. 1. Ekran logowania. - wciśnięcie klawiszy [Ctrl+Alt+Delete], a następnie podanie.
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Rozwój aplikacji przy wykorzystaniu ASP.NET
Konfiguracja kont w programie Adobe Dreamweaver
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
Tworzenie nowych kont lokalnych i domenowych, oraz zarządzanie nimi
Systemy zarządzania treścią Content Management System
Prezentacja i szkolenie
Rozdział 1: Wprowadzenie do systemu Windows 2000 i podstaw sieci
ASP BAZY. 2.2 S. Wolek Wst. do Inf. Połączenie z bazą danych przez ADO (ActiveX Data Object) do: - źródła ODBC - bazy z podanie nazwy sterownika ODBC.
Narzędzia administracyjne
Aplikacje bazodanowe ADO.NET PHP i MySQL
Wybrane zagadnienia relacyjnych baz danych
Internetowe surfowanie
MICROSOFT Access TWORZENIE MAKR
18/11/ Języki programowania 1 Piotr Górczyński Kontrolki.
ASP BAZY DANYCH. 2 S. Wolek Wst. do Inf. Połączenie z bazą danych przez ADO (ActiveX Data Object) do: - źródła ODBC - bazy z podanie nazwy sterownika.
1 Każdy obiekt jest scharakteryzowany poprzez: tożsamość – daje się jednoznacznie wyróżnić; stan; zachowanie. W analizie obiektowej podstawową strukturą
PL/SQL – dalsza wędrówka
Projektowanie stron WWW
System plików.
Technologie programowania systemów internetowych
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Andrzej Majkowski 1 informatyka +. 2 Bezpieczeństwo protokołu HTTP Paweł Perekietka.
Uprawnienia w Windows Server
Podstawy języka skryptów
1. Logowanie z usługą Active Directory. a) logowanie do domeny Windows 2003 Server odbywa się znacznie szybciej niż w poprzednich wersjach. b) nie ma odwołania.
.NET i Bazy Danych Projekt: Wadim Grasza.
Informatyka Zakres rozszerzony Zebrał i opracował : Maciej Belcarz TEMAT : Administracja i bezpieczeństwosieci TEMAT : Administracja i bezpieczeństwosieci.
ASP.NET Kontrolki źródła danych i prezentacji danych w ASP.Net
Maciej Wierzchowski Mariusz Sołtysiak. Założenia  Autentykacja użytkownia  Autentykacja dostawcy  Zapewnienie bezpiecznego połączenia.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Zarządzanie stanem w aplikacjach ASP.NET Elżbieta Mrówka-Matejewska
SQL Server Analysis Services Action!
T. 18. E Proces DGA - Działania (operatorka).
Linux ssh.
PROGRAMY DO KONTROLI RODZICIELSKIEJ
PROGRAMY DO KONTROLI RODZICIELSKIEJ
Aplikacje i usługi internetowe
Zapis prezentacji:

Gliwice 2004 Systemy i Narzędzia Baz Danych z Dostępem Przez Internet Klasyczne ASP cz.2

Agenda 1. ODBC 2. OLE DB 3. ADO 3.1 Istota ADO 3.2 Model obiektowy ADO 3.3 Obiekt ADO Connection 3.4 Obiekt ADO Recordset 3.5 Obiekt ADO Command 3.6 Obiekt ADO Parameter 3.7 Obiekt ADO Error 3.8 Obiekt ADO Field

Agenda 4. Projekt fizyczny aplikacji 4.1 Interfejs graficzny 4.2 Struktura plików 4.3 Logika biznesowa 5. Wybrane problemy 5.1 Utrzymywanie stanu sesji 5.2 Bezpieczeństwo aplikacji – zarys problemu 6. Wsparcie bezpieczeństwa w IIS 7. Lista kontrolna bezpieczeństwa 8. Przykłady 9. Literatura

1 ODBC Open Database Connectivity – interface pozwalający na dostęp aplikacji do danych z różnych systemów bazodanowych (DBMS) Sterowniki ODBC – oprogramowanie pozwalające na współpracę z ODBC OracleAccesDBF ODBC Aplikacja

2 OLE DB OLE DB – pozwala na dostęp do danych z różnych źródeł. Oparty na OLE Component Object Model (COM) Universal Data Access (UDA) – model traktujący wszystkie dane jednakowo niezależnie od źródła Microsoft Data Access Components (MDAC) – biblioteka obiektów ADO, OLE DB i ODBC Dostawcy OLE DB – warstwa oprogramowania pozwalająca na wpółpracę z OLE DB Provider=MSDASQL – żródło danych ODBC Provider=MSIDXS – Microsoft Index Server Provider=ADSDSOOBJECT - Active Directory Service Provider=SQLOLEDB – Microsoft SQL Server Provider=MSDAORA – Bazy danych Oracle

2 OLE DB OracleAccesDBF OLE DB Aplikacja ODBC Acces SQL Server system plików

3.1 Istota ADO ActiveX Data Objects – powszechnie używany model programowania dla dowolnego źródła danych OLE DB. Kolekcja obiektów, które udostępniają atrybuty oraz metody do komunikacji ze źródłem danych Zalety modelu Łatwość użycia Szybki Niskie wymagania pamięciowe Komunikacja z bazami danych przy pomocy OLE DB, możliwa także praca bezpośrednio ze sterownikami ODBC

3.2 Model obiektowy ADO Connection Properties Fields Recordset Command Error Property Field Properties Property Parameters Parameter Properties Property Properties Property Errors

3.3 Obiekt ADO Connection Connection – to otwarte połączenie ze źródłem danych Właściwości Attributes – właściwości obiektu CommandTimeout – czas oczekiwania na wykonanie komendy w sek. ConnectionString – ciąg znaków wykorzystywany do otwarcia połączenia, serie argumentów argument=wartość ConnectionTimeout – czas oczekiwania na nawiązanie połączenia w s CursorLocation – położenie kursora DefaultDatabase – domyślna daza danych IsolationLevel – poziom izolacji adXactBrowse (adXactReadUncommitted) – odczyt danych nie zatwierdzonych adXactCursorStability (adXactReadCommitted) – odczyt danych zatwierdzonych adXactRepeatableRead – niezmienny odczyt danych, mogą być widoczne nowe rekordy adXactIsolated (adXactSerializable) – izolacja od innych transakcji Mode – uprawnienia do modyfikacji danych

3.3 Obiekt ADO Connection Provider – nazwa dostawcy danych State – stan połączenia Version – wersja ADO Metody BeginTrans – rozpoczyna nową transakcję Close – zamyka połączenie CommitTrans – zachowuje zmiany, kończy transakcję, może rozpoczynać nową Execute CommandText, RecordsAffected, Options – wykonuje zapytanie SQL, procedurę zachowaną itp.. Open ConnectionString, UserID, Password, OpenOptions – otwiera źródło danych OpenSchema – informacje o źródle, takie jak tabele itp RollBackTrans – cofa zmiany, kończy transakcję, może rozpoczynać nową Kolekcje Errors – zawiera wszystkie obiekty Error dotyczące obiektu Properties – zawiera wszystkie obiekty Property dotyczące obiektu

3.4 Obiekt ADO Recordset Recordset – reprezentuje zbiór rekordów Właściwości AbsolutePosition – położenie bieżącego rekordu ActiveConnection – połączenie z którym związany jest obiekt Recordset BOF – czy rekord jest pierwszym z zbiorze rekordów Bookmark – identyfikuje rekord CacheSize – liczba rekordów buforowana w pamięci CursorLocation – położenie kursora CursorType – typ kursora adOpenForwardOnly – statyczny kursor do przeglądania rekordów w jednym kierunku adOpenKeyset – dynamiczny kursor, nie widać dodawanych oraz usuwanych rekordów adOpenDynamic – dynamiczny kursor, widać wszystkie zmiany adOpenStatic – statyczny kursor AbsolutePage – aktualna strona rekordów EditMode – określa stan bieżącego rekordu EOF – czy rekord jest ostatnim w zbiorze rekordów

3.4 Obiekt ADO Recordset Filter – wyświetlanie tylko tych rekordów spełniających kryteria LockType – blokowanie rekordów przy modyfikacjach adLockReadOnly – tylko do odczytu adLockPessimistic – pesymistyczne blokowanie adLockOptimistic – optymistyczne blokowanie tylko po wywołaniu metody Update MarshalOptions – zmodyfikowane lub wszystkie dane odsyłane do serwera MaxRecordset – maksymalna liczba zwracanych rekordów PageCount – liczba stron rekordów PageSize – liczba rekordów na stronie RecordCount – liczba rekordów w zbiorze Source – żródło danych State – stan zbioru rekordów Status – status bieżącego rekordu Metody AddNew – tworzy nowy rekord CancelBatch – anulowanie zmian w grupie rekordów

3.4 Obiekt ADO Recordset CancelUpdate – anulowanie zmian wprowadzonych w rekordie Clone – duplikat obiektu Recordset Delete – usuwa bieżący rekord Move – przesuwa położenie kursora MoveFirst - przesuwa położenie kursora na pierwszy rekord MoveLast - przesuwa położenie kursora na ostatni rekord MoveNext - przesuwa położenie kursora na następny rekord MovePrevious - przesuwa położenie kursora na poprzedni rekord NextRecordset – otwiera nowy obiekt związany ze złożonym poleceniem Open – otwiera kursor Requery – odświeża dane poprzez ponowne zapytanie Resync – odświeża dane z bazy danych Supports – określa jaką funkcjonalność ma obiekt Update – zapisuje zmiany wprowadzone w rekordzie UpdateBatch – zapisuje zmiany wprowadzone w zbiorze rekordów Kolekcje Fields – zawiera wszystkie obiekty Field dotyczące obiektu Properties – zawiera wszystkie obiekty Property dotyczące obiektu

3.5 Obiekt ADO Command Command – służy do zadawania zapytań, operacji masowych Właściwości ActiveConnection - połączenie z którym związany jest obiekt Command CommandText – ciąg znaków z poleceniem CommandTimeout - czas oczekiwania na wykonanie komendy w sek. CommandType – typ polecenia Prepared – określa czy zachować skompilowaną wersję zapytania State – stan obiektu Metody CreateParameter – tworzy obiekt Parameter Execute – wykonuje zapytanie lub procedurę zachowaną Kolekcje Parameters – zawiera wszystkie obiekty Parameter dla obiektu Properties – zawiera wszystkie obiekty Property dla obiektu

3.6 Obiekt ADO Parameter Parameter – reprezentuje parametr lub argument przekazywany do obiektu Command Właściwości Attributes – właściwości obiektu Parameter Direction – sposób przekazywania parametrów, we - wy Name – nazwa obiektu Parameter NumericScale – liczba miejsc dziesiętnych w danych liczbowych Precision – całkowita liczba cyfr w danych liczbowych Size – maksymalny rozmiar obiektu Type – typ danych obiektu Value – wartość obiektu Metody AppendChunk – zapisuje dane typu długiego Kolekcje Properties – zawiera wszystkie obiekty Property dla obiektu

3.7 Obiekt ADO Error Error – zawiera informacje o błędach dostawcy (nie błędy ADO) Właściwości Description – opis błędu HelpContext – temat pomocy HelpFile – plik pomocy Number – numer błędu Source – nazwa obiektu który spowodował błąd SQLState – kod błędu gdy wykonywana instrukcja SQL

3.8 Obiekt ADO Field Field – reprezentuje pole danych rekordu Właściwości ActualSize – długość wartości w polu Attributes – właściwości obiektu Field DefinedSize – długość obiektu Field Name – nazwa obiektu Field NumericScale – liczba miejsc dziesiętnych w danych liczbowych Precision – całkowita liczba cyfr w danych liczbowych OryginalValue – początkowa wartość przed zmianami Type – typ danych obiektu Value – wartość obiektu UnderlyingValue – bieżąca wartość obiektu Metody AppendChunk – zapisuje dane typu długiego GetChunk – odczytuje dane Kolekcje Properties – zawiera wszystkie obiekty Property dla obiektu

4 Projekt fizyczny aplikacji Interfejs graficzny Struktura plików Logika biznesowa

4.1 Interfejs graficzny Interfejs graficzny Ciekawa, czytelna szata graficzna, zachęcająca użytkownika do odwiedzania systemu Przejrzystość i spójność interfejsu użytkownika powinna ułatwiać proces uczenia się obsługi systemu Łatwy dostęp do wszystkich funkcji oraz wygodne nawigowanie między stronami przy użyciu odnośników na stronach

4.2 Struktura plików Architektura plików Strona główna, zarządzająca wyglądem poprzez wywoływanie skryptów wyświetlających odpowiednie elementy strony, umożliwia dynamiczne zmiany w wyglądzie stron Ukryta struktura plików zwiększa bezpieczeństwo Łatwa administracja oraz późniejsze modyfikacje interfejsu użytkownika, elastyczne i proste do realizacji zmiany

4.3 Logika biznesowa Logika biznesowa – komponent ActiveX Nacisk na programowanie obiektowe zapewniające wygodę programowania Odizolowanie logiki biznesowej od warstwy związanej z wyglądem interfejsu co zapewnia łatwe modyfikowanie systemu Ukrycie struktury bazy danych i jej szczegółów implementacyjnych, co zwiększa bezpieczeństwo oraz zapewnia łatwe zmiany dotyczące bazy danych Kontrola uprawnień oraz ustawień poprzez wyodrębniony obiekt w jednym miejscu Spójna i jednolita kontrola błędów przez silnik bazy danych Zwiększona szybkość wykonywania przez skompilowany obiekt w porównaniu z interpretowanymi skryptami

4.3 Logika biznesowa dim Sesja, ZalogowanyUzytkownik, CiekaweLinki, Link, i set Sesja=CreateObject("Engine.Sesja") Sesja.NumerSesji=Session.SessionID Set ZalogowanyUzytkownik=Sesja.ZalogowanyUzytkownik Set CiekaweLinki = Sesja.CiekaweLinki For i = 1 To CiekaweLinki.Ilosc set Link=CiekaweLinki(i) Response.Write Link.URL Response.Write Link.Opis set Link=nothing Next if ZalogowanyUzytkownik.Prawa.Prawo("UprWRLinki") then Response.Write "Masz uprawnienia do modyfikacji linków" Set CiekaweLinki = Nothing set ZalogowanyUzytkownik=nothing set Sesja=nothing

5 Wybrane problemy Utrzymywanie stanu sesji Bezpieczeństwo aplikacji - uprawnienia użytkowników

5.1 Utrzymywanie stanu sesji Problem konwersacji internetowej i identyfikacji użytkownika Rozwiązania Modyfikacja URL Pola ukryte formularzy Pliki Cookie Sesja po stronie serwera Własne rozwiązania sesji

5.2 Bezpieczeństwo aplikacji – zarys problemu Poprawna konfiguracja serwera od strony bezpieczeństwa Poprawna budowa szkieletu aplikacji od strony bezpieczeństwa Uprawnienia użytkowników Sztywny podział na użytkowników oraz ich uprawnienia Uprawnienia elastyczne na poziomie funkcji

6 Wsparcie bezpieczeństwa w IIS Uwierzytelnianie Uwierzytelnianie anonimowe – publiczny dostęp, mapowanie na konto IUSR_nazwakomputera, uprawnienia wynikające z NTFS Uwierzytelniania podstawowe – część specyfikacji HTTP, logowanie na konto systemu Windows, hasło i użytkownik czystym tekstem przesyłani Uwierzytelnianie skrócone – część specyfikacji HTTP 1.1, logowanie na konto systemu Windows, hasło i użytkownik przed przesłaniem podlega mieszaniu i skróceniu Zintegrowane uwierzytelnianie systemu Windows – protokół uwierzytelniania Kerberos v5, identyfikacja użytkownika na podstawie logowania lokalnego, może być także monit o hasło Uwierzytelniania certyfikatów – mapowanie certyfikatów klientów na konta systemu Windows

6 Wsparcie bezpieczeństwa w IIS Klient zgłasza żądanie dostępu do zasobów Jeśli serwer jest tak skonfigurowany, przeglądarka żąda informacji uwierzytelniających Sprawdzana jest ważność konta użytkownika Sprawdzane uprawnienia serwera sieci WEB Odczyt Zapis Dostęp do źródła danych Przeglądanie katalogu Sprawdzane uprawnienia NTFS Dostęp do zasobu

7 Lista kontrolna System plików NTFS - System plików NTFS jest bezpieczny Kontrola dostępu do konta IUSR_nazwakomputera - ograniczysz dostęp, jaki anonimowi użytkownicy mają do twojego komputera Pliki wykonywalne w oddzielnym katalogu - łatwiej przypisać do nich uprawnienia dostępu i inspekcjonowanie Konta użytkowników Skomplikowane hasła - Hasła są trudniejsze do odgadnięcia, jeśli składają się z dużych i małych liter, cyfr i znaków specjalnych Ścisłą kontrola nad organizacją kont - Śledź uważne, jakie uprawnienia dostępu zostały przypisane dla ważnych grup i kont Ilość członków grupy administratorzy - Zwykle ta grupa użytkowników ma pełny dostęp do komputera Hasło dla konta administratora - Ustaw dla tego konta trudne do odgadnięcia hasło, zgodnie z opisanymi wcześniej zasadami.

7 Lista kontrolna Usługi i inne zagadnienia Mało usług - Uruchamiaj tylko te usługi, które są absolutnie niezbędne dla twoich potrzeb Inspekcja – można śledzić dostęp do zabezpieczonych plików lub plików o krytycznym znaczeniu oraz zdarzenia serwera Szyfrowana zdalna administracja komputerem - korzystaj z szyfrowania Secured Sockets Layer (SSL) Częste kopie zapasowe ważnych plików i rejestru - Żadne wysiłki związane z bezpieczeństwem nie zagwarantują bezpieczeństwa danych. Kontrolę antywirusowa - narażenie na zainfekowanie wirusami komputerowymi. Stosowanie zabezpieczeń typu firewall Zabezpieczenia Internetowych usług informacyjnych Bezpieczne formy uwierzytelniania – Używaj najbardziej bezpiecznych form uwierzytelniania, jakie mogą obsłużyć klienci Najbardziej restrykcyjne uprawnienia - przypisz tylko uprawnienia Odczyt jeśli tylko to jest konieczne Uprawnienia Zapis, skrypty i pliki wykonywalne Z kombinacji tej korzystać z jak największą ostrożnością

8 Przykłady Prosty przykład wykorzystania ADO Proste zapytanie przykład, źródłaprzykładźródła Podział na strony przykład, źródłaprzykładźródła Zawężanie zakresu przykład, źródłaprzykładźródła Odczyt schematu przykład, źródłaprzykładźródła Logika aplikacji zamknięta w ActiveX Prosty przykład przykład, źródła skryptów, źródła logikiprzykładźródła skryptówźródła logiki Przykład przykład, źródła skryptów, źródła logikiprzykładźródła skryptówźródła logiki Inne przykłady Przykład wykorzystania niestandardowego obiektu – kody kreskowe przykład, źródła przykładźródła Edycja HTML – obiekt DHTMLEdit przykład, źródłaprzykładźródła Obiekty typu BLOB w SQL Server przykład, źródłaprzykładźródła

9. Literatura - MSDN Microsoft psdk/iisref/Acomp59f8.htm psdk/iisref/Acomp59f8.htm - dodatkowe informacje o komponentach ActiveX w IIS - język Jscript i VBScript /index.htm /index.htm - język JavaScript

Kontakt Piotr Kuźniacki Politechnika Śląska, Instytut Informatyki, ul. Akademicka 16, Gliwice, Polska Dziękuję za uwagę...