System dystrybucji materiałów dydaktycznych
Transkrypt
System dystrybucji materiałów dydaktycznych
TECHNOLOGIE INTERNETOWE W ZARZĄDZANIU I BIZNESIE TIZIB’05 ADAM BRYSZEWSKI*,**, MICHAŁ GROTEK* SYSTEM DYSTRYBUCJI MATERIAŁÓW DYDAKTYCZNYCH SYSTEM OF DISTRIBUTION OF DIDACTIC MATERIAL STRESZCZENIE: Praca prezentuje system dostępny przez usługę WWW, przeznaczony do dystrybucji materiałów dydaktycznych. Implementacja oferuje następujące możliwości: pobieranie materiałów (plików); wysyłanie plików na serwer; przeglądanie oraz dodawanie wiadomości (news’ów); wyszukiwanie dostępnych materiałów;. wysyłanie wiadomości E-mail z poziomu strony WWW; wysyłanie materiałów w formie załącznika poczty elektronicznej oraz sprawne zarządzanie bazą danych z poziomu strony WWW. Szczególnie zwrócono uwagę na bezpieczeństwo oraz kontrolę dostępu do systemu. ABSTRACT: The research presents the system available through the WWW service which is aimed at the distribution of didactic materials. The implemetation offers the following possibilities: gathering of resources (files); sending files to the server, browsing and adding the news; searching for the resources available; sending e-mail messages from the WWW site level; sending materials as attachment to e-mail messages and efficient management over the database from the WWW site level. The safety and limited access were the issues of key importance for the authors. 1. Wprowadzenie Internet, oprócz rozrywki, jest również źródłem różnego rodzaju materiałów, kursów oraz informacji o charakterze naukowym. Szeroko rozumiane zasoby w sieci bardzo często stanowią jedyną i niezbędną bazę informacji wykorzystywaną przez uczniów i studentów w celach dydaktycznych. Istnieje bardzo dużo serwisów internetowych udostępniających pomoce naukowe, co wiąże się z szerokim zapotrzebowaniem na tego typu systemy. Wśród szerokiej oferty usług, Internet daje możliwość swoim użytkownikom pobierania oraz wysyłania na odległe komputery zbiorów informacji (plików, programów), dzięki zastosowaniu protokołu FTP (File Transfer Protocol). Serwery ftp (komputery udostępniające pliki) przechowują ogromne zasoby danych, z których w bardziej lub mniej ograniczony sposób możemy korzystać. Internet jest potężnym magazynem wiedzy, daje nieograniczone możliwości rozrywki, ale również, wiąże się z wieloma niebezpieczeństwami. Zarówno zwykły użytkownik jak * ** Samodzielny Zakład Sieci Komputerowych Politechniki Łódzkiej, Społeczna Wyższa Szkoła Przedsiębiorczości i Zarządzania, Łódź 36 TECHNOLOGIE INTERNETOWE W ZARZĄDZANIU I BIZNESIE TIZIB’05 i firmy profesjonalnie zajmujące się zasobami sieciowymi nieustannie narażane są na różnego rodzaju włamania intruzów oraz ataki wirusów komputerowych. Zatem należy pamiętać o zabezpieczeniu zarówno udostępnianych w sieci materiałów jak i własnych komputerów. 2. Cel i założenia projektowe Celem który postawili sobie autorzy było zaprojektowanie i implementacja w pełni funkcjonalnego systemu, przeznaczonego do dystrybucji materiałów dydaktycznych. Cały system został oparty o skonstruowaną na potrzeby systemu bazę danych. W celu przechowywania materiałów dydaktycznych wykorzystano serwer FTP. Zadania systemu nie mają się ograniczać jedynie do udostępniania materiałów dydaktycznych, ale również mają obejmować wymianę informacji między studentami. Funkcje oraz możliwości, jakie system oferuje swoim użytkownikom: − Dostęp do systemu poprzez stronę WWW. − Rejestrowanie się w systemie dostępne dla studentów i wykładowców (dane wykładowców wprowadzane są automatycznie do bazy systemu) − Stworzenie struktury katalogów z podziałem na: − Kierunki − Semestry − Wykłady − Laboratoria − Itd. − Pobieranie materiałów (plików). − Wysyłanie plików na serwer. − Przeglądanie oraz dodawanie wiadomości (news’ów). − Wyszukiwanie dostępnych materiałów. − Wysyłanie wiadomości E-mail z poziomu strony WWW. − Wysyłanie materiałów w formie załącznika poczty elektronicznej. − Zarządzanie bazą danych z poziomu strony WWW. Jednym z najważniejszych założeń projektu było zwrócenie szczególnej uwagi na bezpieczeństwo oraz kontrolę dostępu do systemu. Zapewnienia bezpieczeństwa wymagają zarówno informacje przechowywane w bazie danych (dane osobowe użytkowników, hasła), jak i dostęp do serwera ftp oraz znajdujące się tam zasoby. 3. Implementacja 3.1. Użytkownicy W systemie możemy wyróżnić cztery profile charakteryzujące użytkowników. Każdy profil ma przypisane inne prawa dostępu do poszczególnych funkcji systemu. Należą do niech: − Administrator − Wykładowca 37 TECHNOLOGIE INTERNETOWE W ZARZĄDZANIU I BIZNESIE TIZIB’05 − − Student Gość Administrator – użytkownik o tym profilu posiada największe możliwości. Jest najważniejszą osobą w całym systemie. W celu korzystania z dostępnych funkcji musi się zalogować podając login i hasło. Rejestracja tego użytkownika przebiega podczas instalacji systemu – osoba instalująca system rejestruje się jako Administrator. Ma on dostęp do całej bazy danych oraz wszystkich dostępnych w systemie funkcji. Jest odpowiedzialny za poprawne działanie całego systemu. Administrator może dodawać, usuwać i edytować materiały (zarówno pliki jak i katalogi), zarządzać użytkownikami (dodawać, usuwać, edytować dane użytkowników, blokować konta, wymuszać zmianę hasła), może również dodawać innych administratorów. Użytkownik z profilem Administrator posiada także obowiązki związane z zarządzaniem systemem. Należą do nich: aktualizacja bazy danych w celu sprawdzania i poprawiania niespójności, sprawdzanie przesyłanych materiałów na serwer (zatwierdzanie lub usuwanie materiałów), stworzenie struktury katalogów (kategorii) z podziałem na poszczególne kierunki, specjalizacje i semestry. Wykładowca – jest to użytkownik posiadający mniej przywilejów niż Administrator. Użytkownik o profilu Wykładowca, podobnie jak w przypadku Administratora, aby korzystać z systemu, musi się zalogować podając login i hasło. Z założenia użytkownicy z profilu Wykładowca rejestrowani są automatycznie (mogą to być dane pobierane z innej bazy), jednak w systemie istnieje możliwość rejestracji takiego profilu. Wykładowca może dodawać do systemu pliki jak i katalogi. Może również edytować nazwy i usuwać katalogi pod warunkiem, że jest ich właścicielem. Katalog może być usunięty wyłącznie przez Administratora oraz Wykładowcę, który dodał dany katalog. Student – ten profil posiada najmniejsze możliwości w porównaniu z innymi logowanymi profilami. Użytkownicy o profilu Student mogą pobierać oraz dodawać do systemu materiały, nie mają natomiast możliwości zakładania nowych katalogów oraz usuwania jakichkolwiek zasobów. Podobnie jak dwa pierwsze opisywane profile osoby zalogowane jako Student mogą dodawać wiadomości do systemu news-ów oraz przesyłać wiadomości email z poziomu strony systemu do innych użytkowników zarejestrowanych w systemie. Gość – jest to użytkownik niezalogowany (jedynie odwiedzający stronę „Systemu dystrybucji materiałów dydaktycznych”), posiadający najmniej praw spośród wymienionych użytkowników. Jego możliwości związane z systemem ograniczają się do przeglądania news-ów oraz wyszukiwania dostępnych w systemie materiałów. Użytkownik Gość ma możliwość zarejestrowania się w systemie pod warunkiem, że jest studentem z przydzielonym odpowiednim kontem e-mail. 3.2. Struktura bazy danych Podstawą całego systemu jest relacyjno-obiektowa baza danych. Baza została stworzona na samym początku realizacji projektu i składa się z dwunastu tabel, będących ze sobą w odpowiednich relacjach. 38 TECHNOLOGIE INTERNETOWE W ZARZĄDZANIU I BIZNESIE TIZIB’05 Cały system składa się z kilkunastu plików. Zdecydowaną większość stanowią pliki *.php, występują również: index.html, style.css oraz pliki *.inc, w których zdefiniowane są niektóre funkcje. Ze względu na dość złożoną budowę systemu, jego realizacja zastała podzielona na pięć etapów: − Etap I – Rejestracja w systemie − Etap II – Autoryzacja z kontrolą dostępu − Etap III – Katalog zasobów − Etap IV – Zarządzanie użytkownikami − Etap V – System news’ów 3.3. Rejestracja w systemie. Pierwszą osobą rejestrowaną w systemie jest administrator systemu. Proces rejestracji odbywa się podczas instalacji systemu na serwerze poprzez wypełnienie odpowiedniego formularza. Dla zapewnienia większego bezpieczeństwa, plik wyświetlający formularz rejestracji, należy usunąć po zakończeniu instalacji. Rejestracja w systemie przebiega niemal identycznie dla każdego profilu użytkowników. Polega to na wyświetlaniu generowanych dynamicznie formularzy oraz dokonaniu wpisów do odpowiednich tabel w bazie, w zależności od rejestrowanego profilu. W przypadku rejestracji profilu „student” oraz „wykładowca”, funkcje wyświetlające formularze oraz dokonujące wpisów do bazy danych, zapisane są w pliku register.php. Podczas rejestracji, każdy użytkownik wybiera sobie unikalną nazwę, którą będzie się identyfikował oraz otrzymuje hasło wygenerowane losowo przez jedną z funkcji systemu. Hasło składa się ośmiu znaków, mogą to być małe i wielkie litery oraz cyfry 0-9. Zapisywane w bazie danych hasło, szyfrowane jest przy pomocy funkcji crypt(), z wykorzystaniem algorytmu DES. W przypadku użytkowników o profilu „student” po weryfikacji wprowadzonych do formularza danych, hasło w postaci jawnej (niezaszyfrowanej), wysyłane jest automatycznie na podany przez studenta adres e-mail. Natomiast każdy nowo rejestrowany wykładowca, w celu uzyskania hasła musi zgłosić się do administratora systemu. Takie rozwiązanie ma na celu zapobieganie przed rejestracją nieuprawnionych użytkowników. 3.4. Autoryzacja z kontrolą dostępu. Zapewnienie odpowiedniej kontroli dostępu oraz sprawdzenie danych logujących się użytkowników jest niezbędne i bardzo ważne dla całego systemu. Realizując to zadanie skorzystano z oferowanego przez PHP programowania obiektowego oraz mechanizmu sesji. Natomiast do łączenia się z bazą danych wykorzystano klasę DB należącą do pakietu PEAR. Pakiet ten standardowo jest dołączany do wersji PHP v. 4.1. Autoryzacja logującego się użytkownika przebiega w standardowy sposób poprzez sprawdzenie loginu i hasła. W przypadku zapomnienia hasła, użytkownik może skorzystać z systemu przypominania haseł. System wymaga podania loginu i jeśli podana przez użytkownika nazwa znajduje się w bazie danych, wysyła on na podany podczas rejestracji adres 39 TECHNOLOGIE INTERNETOWE W ZARZĄDZANIU I BIZNESIE TIZIB’05 e-mail nowe hasło. System nie pobiera zapisanego w bazie danych hasła, natomiast losuje nowe, wykorzystując funkcję generującą losowy ciąg znaków. Wprowadzone przez użytkownika dane są sprawdzane przez program i w zależności od tego czy wprowadzana para login:hasło zgadza się z odpowiednią parą z bazy danych, użytkownik otrzymuje bądź dostęp do systemu, bądź informację o braku dostępu. Podczas logowania kluczową rolę odgrywa napisana do tego celu klasa Login. To właśnie metody tej klasy odpowiadają za sprawdzenie wszystkich koniecznych warunków pozwalających na utworzenie obiektu zalogowanego użytkownika oraz za samo jego utworzenie. Aby taki obiekt mógł być utworzony, sprawdzane są następujące warunki: − Czy zgadza się para – login:hasło. − Czy konto nie zostało zablokowane przez administratora systemu. − Czy ilość błędnie wprowadzonych haseł nie przekracza określonej wartości. − Jakie logowany użytkownik posiada prawa dostępu do systemu. Kiedy powyższe warunki są spełnione użytkownik jest logowany do systemu, jednak zanim dany użytkownik będzie mógł korzystać ze wszystkich funkcji aplikacji, sprawdzany jest jeszcze znacznik wymuszający zmianę hasła. Taki znacznik ustawiany jest automatycznie dla każdego nowo rejestrowanego użytkownika, bądź przez administratora systemu. Oczywiście każdy użytkownik może zmieniać własne hasło dowolną ilość razy. W zależności od tego czy znacznik zmiany hasła jest ustawiony czy też nie, następuje przekierowanie na odpowiednią stronę. System sprawdza prawa dostępu dla każdego logowanego użytkownika i w zależności od profilu jaki posiada otrzymuje dostęp do różnych funkcji systemu. Udostępnianie różnych funkcji i możliwości uwidacznia się poprzez dynamicznie tworzone menu. Dynamiczne menu tworzone jest na podstawie informacji zawartych w tabelach: PRAWA, MATERIALY, MATERIALY_PRAWA, PROFIL oraz PROFIL_PRAWA. 3.5. Katalog zasobów Katalog zasobów jest częścią systemu, odpowiedzialną za udostępnianie materiałów, tworzenie i usuwanie katalogów oraz częściową administrację systemem. Najważniejszy kod źródłowy dotyczący tego etapu pracy znajduje się w następujących plikach: common_db.inc, funkcje.inc, php_directory.inc, directory.php, php_manager.inc, manager.php. Plik common_db.inc wykorzystywany również podczas rejestracji w systemie, zawiera zdefiniowane funkcje do łączenia się z bazą danych oraz obsługę błędów pojawiających się podczas łączenia. W pozostałych plikach zapisane są funkcje dotyczące działania samego katalogu zasobów oraz funkcje wykonujące działania na zasobach serwera FTP. Ponieważ wszystkie materiały miały być przechowywane na serwerze FTP, zatem należało je w bezpieczny i sensowny sposób udostępnić użytkownikom systemu. Jednym ze sposobów takiego udostępnienia zasobów FTP na stronie WWW jest stworzenie przeglądarki plików i katalogów. Stworzenie takiej przeglądarki ogranicza się do napisaniu prostego skryptu wykorzystującego kilka udostępnianych przez PHP funkcji, operujących na plikach i katalogach. Mimo, iż takie rozwiązanie w rzeczywisty sposób odzwierciedla zawartość serwera, to jednak posiada wiele wad i niedostatków. 40 TECHNOLOGIE INTERNETOWE W ZARZĄDZANIU I BIZNESIE TIZIB’05 Lepszym rozwiązaniem jest stworzenie logicznej struktury plików i katalogów, zapisanej w bazie danych. Jest to rozwiązanie trudniejsze do zrealizowania, ale zarazem daje dużo większe możliwości. Wykorzystując bazę danych możemy zapisywać informacje o użytkownikach dodających nowe materiały do systemu, o terminach dodawania materiałów a także możemy weryfikować zawartość nadesłanych materiałów przed udostępnieniem ich w systemie. 3.5.1. Struktura katalogów Pierwszym krokiem podczas tworzenia struktury katalogów było ustalenie zasad, według których będą tworzone katalogi i podkatalogi z uwzględnieniem zależności między nimi. Zostało to zrealizowane w taki sposób, aby wszyscy użytkownicy systemu mieli możliwość sprawnego poruszania się po całym drzewie katalogów. System tworzenia katalogów jest bardzo elastyczny, co pozwala uprawnionym osobom na tworzenie katalogów i podkatalogów w dowolnym miejscu drzewa. Wszystkie niezbędne informacje dotyczące utworzonych katalogów zapisane są w tabeli PRZEDMIOTY. Podstawą tworzenia katalogów jest zdefiniowany specjalny katalog nadrzędny, który jest katalogiem głównym, natomiast wszystkie katalogi tworzone przez użytkowników systemu są jego podkatalogami. Hierarchię katalogów oraz zależności między nimi określa identyfikator katalogów (category_id). Identyfikator ten przedstawia zależność: potomek – rodzic, czyli który z katalogów jest nadrzędny a który podrzędny. Zarówno w przypadku operacji dodawania, edycji jak i usuwania katalogów, wraz z wykonywaniem tych zadań na logicznej strukturze katalogów, wykonywane są odpowiednie czynności na serwerze FTP. Jeśli przykładowo wystąpi błąd w połączeniu z serwerem FTP, wówczas wykonywane zadanie automatycznie zostanie przerwane i do bazy danych nie zostaną wprowadzone zmiany. Ponieważ każdy zalogowany użytkownik może przesłać plik do systemu, zatem istnieje możliwość ze znajdą się tam materiały niebezpieczne bądź nie związane tematycznie z przeznaczeniem serwisu. W celu zabezpieczenia się przed tego typu sytuacjami, administrator systemu ma możliwość kontroli i weryfikacji nadesłanych materiałów nim udostępni je innym użytkownikom. Po sprawdzeniu zawartości nadesłanego pliku administrator może go zatwierdzić bądź usunąć z systemu. Katalog zasobów udostępnia prostą wyszukiwarkę zawartych w nim materiałów oraz dwie listy statystyk. Wyszukiwanie materiałów możemy przeprowadzić dla aktualnego katalogu, w którym się znajdujemy lub możemy przeszukać wszystkie dostępne katalogi. Możemy również dokonać wyboru, co do sposobu wyszukiwania słów kluczowych. Jedna lista statystyk przedstawia tytuły pięciu najczęściej pobieranych materiałów, druga zaś pięć tytułów najnowszych materiałów w systemie. 3.6. Zarządzanie użytkownikami Ta część aplikacji, odpowiedzialna za zarządzanie użytkownikami, przeznaczona jest wyłącznie dla administratora systemu. Kod źródłowy napisany podczas tego etapu pracy znajduje się w pliku userman.php. Zapisane są w nim wszystkie funkcje aktualizujące bazę da41 TECHNOLOGIE INTERNETOWE W ZARZĄDZANIU I BIZNESIE TIZIB’05 nych a także wyświetlające wszystkie niezbędne formularze i rekordy zapisanych w bazie użytkowników. Administrator ma możliwość wyszukiwania i sortowania rekordów użytkowników według ich numeru identyfikacyjnego oraz loginu. Może również dodawać nowych użytkowników o dowolnym zdefiniowanym profilu. Administrator ma możliwość edycji danych osobowych wszystkich użytkowników, jak również może administrować kontem wybranego użytkownika. To właśnie administrator może blokować konta innym użytkownikom systemu oraz wymuszać na nich zmianę hasła. Może również nadać nową nazwę identyfikującą danego użytkownika (login) pod warunkiem, że nazwa taka nie jest już zajęta. 3.7. System news’ów Ostatnim etapem pracy było stworzenie systemu news’ów, czyli krótkich wiadomości tekstowych, odpowiednio sformatowanych i wyświetlanych na stronie systemu. System news’ów ma służyć do informowania użytkowników systemu o wprowadzanych na stronach serwisu zmianach, o zaistniałych nowościach a także może być wykorzystany do wymiany poglądów i uwag na różnego rodzaju tematy. 3.8. Bezpieczeństwo Bezpieczeństwo całego systemu jest jednym z ważniejszych aspektów całej pracy, a składa się na to kilka ważnych zagadnień: − Bezpieczeństwo strony z poziomu PHP. − Bezpieczeństwo serwera WWW. − Bezpieczeństwo serwera FTP. − Bezpieczeństwo bazy danych. − Bezpieczeństwo przesyłania danych na odległe komputery. Podczas tworzenia aplikacji, szczególny nacisk został położony na zapewnienie bezpieczeństwa pod względem dostępu do całego systemu, oraz ochronę informacji w bazie danych. System autoryzacji i kontroli dostępu, wykorzystując mechanizm sesji, kontroluje i zabezpiecza dostęp do odpowiednich podstron systemu. Mechanizm sesji uniemożliwia dostanie się na strony systemu poprzez zapamiętanie konkretnego adresu URL lub dzięki przyciskowi „Wstecz” w przeglądarce. Także stworzone dla administratora możliwości blokowania kont użytkowników lub wymuszania zmiany haseł, mają wpływ na bezpieczeństwo systemu. Dzięki zliczaniu błędnie wprowadzonych haseł w znacznym stopniu ograniczona została możliwość odgadnięcia hasła przez przypadkową osobę. W przypadku kilku prób zalogowania się na jedno konto z błędnie wprowadzanymi hasłami, konto takie zostanie zablokowane i może być uaktywnione wyłącznie przez administratora systemu. Do przesyłania informacji z formularzy do skryptów systemu, które powinny być ukryte przed użytkownikami zastosowane są ukryte pola oraz metoda przesyłania „POST”. Metoda ta, mimo iż nie daje możliwości całkowitego ukrycia przesyłanych informacji, to sprawia, że przesyłane dane nie są widoczne w adresie URL. Zarówno serwer WWW, na którym umieszczony jest system jak i serwer FTP, z którego system korzysta, zabezpieczone są hasłami. Podobnie jest w odniesieniu do bazy danych. Pliki systemu, w których przechowywane są hasła dostępu do serwera FTP oraz do bazy 42 TECHNOLOGIE INTERNETOWE W ZARZĄDZANIU I BIZNESIE TIZIB’05 danych, umieszczone są w osobnym katalogu, zamieszczonym poza strukturą katalogów serwera WWW. Mimo, że dostęp do bazy danych chroniony jest hasłem, informacje takie jak hasła do kont poszczególnych użytkowników nie powinny być zapisywane w sposób jawny. W przypadku włamania do bazy, intruz może odczytać zapisane tam informacje, niezbędne do korzystania z systemu. W celu uniknięcia takiej sytuacji, zapisywane w bazie hasła szyfrowane są przy pomocy algorytmu DES. Ponieważ system ma udostępniać swoje zasoby wielu osobom, należy zadbać o bezpieczeństwo użytkowników pobierających udostępniane materiały. Aby w systemie nie znalazły się materiały niebezpieczne dla osób korzystających z serwisu, każdy nadesłany plik może być weryfikowany przez administratora i zostanie udostępniony w systemie dopiero, gdy administrator go zatwierdzi. 3.9. Wnioski System okazał się dosyć mocno rozbudowany i nie tak prosty, jak początkowo mogło się to wydawać. W czasie realizacji pojawiły się problemy, ale zdecydowana większość z nich została pomyślnie rozwiązana. System umieszczony został na serwerze linuksowym w dystrybucji: Debian GNU/Linux „Woody”. Natomiast testowany był zarówno w środowiskach Windows oraz Linux na następujących przeglądarkach: − Opera Wersja 7.2.3. − Internet Explorer Wersja 5.0 i wyższe − Mozilla Oczywiście nie jest to system niezawodny i wymaga jeszcze wielu testów przed wprowadzeniem go do użytku. Również istnieje jeszcze kilka zagadnień, które można rozbudować oraz usprawnić, jednak jest on w pełni funkcjonalny i skalowalny, co pozwala na jego dalszą rozbudowę zarówno pod względem udostępnianych możliwości jak i bezpieczeństwa. 4. Literatura http://www.apache.org http://www.javasoft.pl http://www.mysql.com http://www.php.net 43