🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Ziemek Borowski Thu, 18 Dec 1997 15:39
pl.comp.www FAQ - 5/5 - serwery i bezpieczenstwo
#305
Author: Ziemek Borowski
Date: Thu, 18 Dec 1997 15:39
394 lines
16606 bytes
     _________________________________________________________________

10. Tworzenie - Java, JavaScript, CGI, SSI

10.1 Po co stosowac programy w przekazie informacji

   Czasem trzeba. I to nie po to by _uatrakcyjnic statyczne strony Web_ a
   po to by
     * zapewnic dostep do danych z bazy
     * umozliwic wyszukiwanie
     * zapewnic informacje zwrotna
     * ulatwic autentyfikacje

10.2 Statyczne - dynamiczne

   Nie wiem czemu wszelkie pisma mowiac o Pajeczynie i Javie pisza o
   statycznych dokumentach HTML i wnoszeniu ruchu do nich... Uwazam za
   haniebna praktyke tworzenie latajacych ramek, spodkow i napisow.
   Uwazam, ze wszelkie stosowanie oprogramowania powinno dotyczyc
   sytuacji, gdy dane sa po prostu oprawiane w forme HTMLowa.

10.3 Bazy danych

   _Jakie sa dostepne bazy danych mozliwe do stosowania w Pajeczynie?_

   Odpowiedz brzmi pewnie: _wszystkie_ powazne w tej chwili produkowane.
   Ale trzeba wybrac jeden produkt. Ja osobiscie polecalbym Postgres URL:
   http://www.postgresql.org/ na Unixie (a zwlaszcza Linuxie). Dlaczego?
     * dluga historia (10 lat - poczatek prac na zlecenia DARPA i NSF)
     * relacyjna
     * rozszerzalna
     * cechy obiektowe
     * dostep przy pomocy podzbioru SQL
     * istnieje interface do WWW

   Poza tym niektorzy zalecaja:
     * mSQL URL: http://hughes.com.au/ (choc baza ta dostepna jest za
       darmo jedynie dla instytucji edukacyjnych),
     * miniSQL - T.c.X. Data Konsult URL: http://www.tcx.se/
     * dostepny teoretycznie za darmo choc na dziwnych zasadach
       MICRO/CDS/ISIS URL: http://www.medianet.com.pl/%7Ecc/ rodem z
       UNESCO.
     * Oracle URL: http://www.oracle.com/
     * Essentia URL: http://www.inter-soft.com/products/essentia/

   _Patrz tez:_
     * Michal Mosiewicz _Linux i bazy danych_ {w:} Linux+ URL:
       http://www.Linux.com.pl/ 3/1997 (ISSN 1427-55-62)

10.4 Przeszukiwanie

   Aby udostepnic przeszukiwanie swojego serwera mozna:

  instalowac search-engine

   oczywiscie taka czynnosc wiaze sie z ryzykiem dociazenia maszyny. Ale
   czego sie nie robi dla odbiorcow naszej informacji ;-). Z czego mozna
   wybierac?
     * SWISH URL: http://www.eit.com/software/swish/
     * GlimpseHTTPd URL: http://glimpse.cs.arizona.edu/ghttp/ (kopia na
       SunSite.ICM) URL: http://SunSite.ICM.edu.pl/pub/unix/glimpse/
     * ht://Dig URL: http://htdig.sdsu.edu/ (RPM na SunSite.ICM) URL:
       http://SunSite.ICM.edu.pl/pub/Linux/redhat-contrib/i386/
     * freeWais URL:
       http://ls6-www.informatik.uni-dortmund.de/ir/projects/freeWAIS-sf/
     * Exite URL: http://www.exite.com/ (choc jeszcze nie na Linuxa)
     * DEC AltaVista URL: http://www.altavista.software.digital.com/

  zmusic publicznie dostepne roboty do indeksowania naszych zasobow

   W wypadku niektorych publicznie dostepnych uslug przeszukiwawczych
   mozliwe jest zawezenie poszukiwan okreslonej klasy URL. Nic (poza
   zdrowym rozsadkiem i potencjalnym protestem ich wlascicieli) nie stoi
   na przeszkodzie napisaniu odpowiedniej formatki wyszukujacej
   uzywajacej np. http://www.hotbot.com/

   lub http://infoseek.ICM.edu.pl:8000 .

10.5 Latajace spodki

   _W jaki sposob mam spowodowac by odbiorcy mojej strony mogli na niej
   pograc w kolko i krzyzyk?_

   Nie wiem. Najlepiej byloby chyba zaprzac do tego celu Jave.

   _Patrz tez:_
     * ????

10.6 W jaki sposob moge zainstalowac licznik na stronie?

   Nie nalezy tego robic poniewaz, zazwyczaj, liczniki klamia, nie
   uwzgledniajac odwolan do strony przez Proxy-Cache, powoduja
   niepotrzebne obciazenie serwera (graficzne), i jest przejawem
   niepotrzebnego efekciarstwa. Jesli jednak te argumenty sa
   nieprzekonujace polecam:
     * http://www.webtools.org/counter/
     * http://icount.com/
     * http://www.fxweb.holowww.com/tracker/index.shtml

   albo skorzystanie z opisu autorstwa Tomasza Pilata (sprawdzony jedynie
   z NSCA HTTPd 1.4. i dzialajacy na bazie _Server Side Include_ ):
   nalezy zalozyc w katalogu gdzie mamy strone, do ktorej chcemy liczyc
   dostepy plik .htaccess

AddType text/x-server-parsed-html index.html
AddType application/x-httpd-cgi count.cgi

   - gdzie index.html to nazwa tej strony, a count.cgi nazwa pliku
   programu licznika (obie linijki powinny byc zakonczone Enterem). Oto
   zawartosc tego drugiego:

#!/usr/bin/perl
open (COUNT,"count") ;
$counter =<COUNT>;
close (COUNT) ;
open (COUNT, ">count") ;
print COUNT +($counter+1) ;
close (COUNT) ;
print $counter;
exit(0) ;

   moze zaistniec potrzeba zmiany sciezki do PERLa (to jest
   #!/usr/bin/perl). Najlatwiej sprawdzic, gdzie jest PERL piszac:
   whereis perl lub which perl Wykonujemy co nastepuje:

touch count
chmod 777 count
chmod 505 .htaccess
chmod 505 count.cgi

   W pliku count znajdowac sie bedzie liczba odwiedzin. Umieszczamy na
   stronie cos takiego:

Te strone odwiedzilo juz
<!-#exec cmd="/usr/bin/perl count.cgi"->
gosci!

   Uwaga cenzora: powinno byc:
Te strone pobrano juz <!-#exec cmd="/usr/bin/perl count.cgi"-> razy
od dnia
zainstalowania licznika lub jego resetowania.

   (TP)

10.7 Jak rozpoznac w jakiej przegladarki uzywa odwiedzajacy?

   Date: Wed, 09 Apr 1997 02:53:21 +0200
   From: Michal Mosiewicz <mimo@lodz.pdi.net>
   Re: Redirection - bez klikania
     _________________________________________________________________

#!/usr/bin/perl
$ENV{'HTTP_USER_AGENT'} =~ /MSIE/ && do {
   print "Location: http://specjalnie.dla.misia/\n\n";
   exit;
}
print "Location: http://dla.innych/\n\n";
     _________________________________________________________________
     _________________________________________________________________

   Poprzedni rozdzial Spis tresci
     _________________________________________________________________

11. Serwery

11.1 Jakie serwery WWW (HTTP) sa dostepne? Jaki serwer wybrac?

   Pytanie rzeka... najlepiej spojrzec na strone WebCompare URL:
   http://webcompare.internet.com/ gdzie szczegolowo opisano (i
   porownano) wiekszosc dostepnych serwerow WWW.

   Ja osobiscie uzywam boa URL: http://www.boa.org/ - malego, taniego
   (GNU) i chodzacego (niezaleznie od ustawien) jako nobody nie zas jako
   root.

   Inni preferuja Apache 1.2 URL:
   http://SunSite.ICM.edu.pl/pub/www/apache/ lub 1.1.3 i wcale sie im nie
   dziwie - potezne narzedzie, z dosc latwa integracja z bazami danych,
   opcjami takimi jak: wirtualny serwer i uzywane na tyle powszechnie
   (podobnie jest z sendmailem URL: http://www.SendMail.org/ ), ze
   skutecznie przetestowane ( Netcraft URL: http://www.netcraft.com/
   donosi ze Apache stanowi ponad 40% wszystkich uzywanych w Internecie
   serwerow HTTPd - a nastepny developer, Microsoft, ma tylko 10%
   udzialow w rynku ;-). A potencjalne niebezpieczenstwa mozna zwalczac
   przez zainstalowanie ,,wrapperow'' i scian ognia. (wersje 1.2. -
   dzialaja w trybie HTTP/1.1)

   Wartym uwagi produktem (choc po czesci testowym) jest napisany przez
   zespol z W3C serwer Jigsaw URL: http://www.w3.org/pub/WWW/Jigsaw/ (w
   Javie wiec naprawde wieloplatformowy, a w dodatku jako jeden z
   pierwszych prawie w pelni realizujacy HTTP/1.1).

   Ci ktorzy uzywaja w swojej sieci Novella URL:
   http://www.Novell.com.pl/ powinni przyjrzec sie serwerowi YAWN URL:
   http://www.cpu.lublin.pl/yawn/ napisanemu w Lublinie przez Artura
   Urbanowicza URL: mailto:artur@golem.umcs.lublin.pl (a pozostali
   powinni to zobaczyc, chocby dla dokumentacji)

   Sa wreszcie tacy, ktorzy lubia placic za... cos co moga otrzymac
   niemal za darmo... Tym polecam { ;-)))) } produkty firm:
     * Microsoft URL: http://www.microsoft.com/poland/ (gdy mowa o
       serwerach mamy do wyboru _Personal Web Serwer_ , albo _Internet
       Information Serwer_ )
     * NetScape Comunication URL: http://home.netscape.com/
     * Lotus/IBM URL: http://www.lotus.com/ i Lotus Notes wraz serwerem
       HTTP Domino URL: http://www2.lotus.com/domino.nsf/

   _Patrz tez:_
     * http://webcompare.internet.com/

11.2 Platforma sprzetowa

   Obojetna... Na pytanie: _Jaka platforme sprzetowa wybrac?_ odpowiedz
   brzmi: _Nie Unixa, nie MacIntosha, nie MS Windows, a te na ktorej sie
   najlepiej znasz i ktorej ufasz... Wazne przy tym by byla to platforma
   stabilna (tj. zeby serwer WWW byl dostepny co najmniej przez 23.5
   godziny na dobe ;-)._

   _Patrz tez:_
     * http://www.webcompare.com/

11.3 Obsluga bledow

   O klasie danego serwisu (serwera) decyduje nie tylko to jakie uslugi
   proponuje, ale takze to jak sobie radzi z sytuacjami nietypowymi - czy
   gdy uzytkownik zle wpisze adres krzyczy na niego _Bad URL_ , czy tez
   stwierdza _Chyba sie pomyliles. Masz oto skrocony spis mojej
   zawartosci, i wybierz prosze, to czego szukales. Mozesz takze
   skorzystac z moich uslug wyszukiwawczych_

   Sposob reakcji na najbardziej podstawowe bledy (typu 404: file not
   found lub 403: Forbiden mozna ustawic w pliku srm.conf (w rodzinie
   serwerow z NSCA).

   _Patrz tez:_
     * NCSA httpd URL:
       http://hoohoo.ncsa.uiuc.edu/docs/setup/ConfigureInfo.html#Directiv
       e

11.4 Strony na haslo

   W danym katalogu nalezy umiescic plik .htaccess o zawartosci:

AuthName this page
AuthType basic
AuthUserFile /home/looser/.htpasswd
AuthGroupFile /dev/null
<Limit GET PUT>
require user secret
</Limit>

   opis do kodu:
     * tekst ,,this page'' mozna zastapic czymkolwiek.
     * /dev/null z AuthGroupFile nalezy zastapic nazwa pliku (o ile
       chcemy stworzyc grupe)
     * plik wymieniony w AuthUserFile powinien znajdowac sie w katalogu
       domowym uzytkownika, nie zas w public_html lub innym powszechnie
       dostepnym.

   Hasla dodaje sie odpowiednim programem:

   htpasswd -c /home/looser/.htpasswd secret _(-c jesli tworzymy nowy
   plik)_ htpasswd jest w dystrybucji NCSA i Apache, w katalogu _support_
   . W przypadku gdy uzytkownikow ma byc wiecej niz kilkudziesieciu,
   nalezy przejsc na format DB lub DBM. Przeszukiwanie plikow DB i DBM
   jest znacznie szybsze niz zwyklego tekstowego .htpasswd Ustawienia sa
   analogiczne, tylko ze zamiast zbioru funkcji Auth* mamy AuthDB* lub
   AuthDBM* i do zarzadzania

11.5 Wirtualny serwer

   W bardzo wielu przypadkach istnieje potrzeba wykorzystania jednego
   komputera do obslugiwania informacji dostarczonych przez kilku roznych
   klientow. Problem mozna rozwiazac na kilka roznych sposobow:

   1. Informacje kazdego klienta umieszczamy w innej kartotece i
   propagujemy odsylacze:
     * http://www.nasz.serwer.com.pl/klient1/
     * http://www.nasz.serwer.com.pl/klient2/
     * ...
     * http://www.nasz.serwer.com.pl/klientN/

   2. Informacje umieszczamy w osobnych kartotekach i uruchamiamy kilka
   serwerow http; kazdy korzystajacy z innego portu. Odsylacze beda
   wygladaly wowczas tak:
     * http://www.nasz.serwer.com.pl:8001/ dla klient1
     * http://www.nasz.serwer.com.pl:8002/ dla klient2
     * ...
     * http://www.nasz.serwer.com.pl:800n/ dla klient

   lub jezeli zarejestrujemy w DNS jako alias dla naszego serwera nazwy
   www.klient1.com.pl, ... , www.klientn.com.pl
     * http://www.klient1.com.pl:8001/ dla klient1,
     * http://www.klient2.com.pl:8002/ dla klient2
     * ...
     * http://www.klientn.com.pl:800n/ dla klient

   Rozwiazania oba sa bardzo proste, ale niezbyt eleganckie. Klient moze
   domagac sie wystepowania pod wlasna nazwa i nie godzic sie na zadne
   "dopiski". W takiej sytuacji musimy uruchomic "serwery wirtualne".
   Musimy:
     * miec n wolnych numerow IP,
     * zarejestrowac serwery www.klient1.com.pl, ... , www.klient.com.pl
       uzywajac tych numerow
     * zdobyc odpowiednie oprogramowanie serwera pozwalajacego na jednym
       komputerze obsluzyc kilka roznych adresow. Na przyklad Apache URL:
       http://SunSite.ICM.edu.pl/pub/www/apache/
     * spowodowac, by komputer rozpoznawal jako swoje wlasne wszystkie
       powyzsze adresy. Mozna to (lub nie mozna) zrealizowac na kilka
       roznych sposobow. Zalezy to od konkretnej wersji systemu
       operacyjnego i jest poza zakresem zainteresowania niniejszego FAQ.
       Najelegantszym rozwiazaniem jest zainstalowanie w komputerze kilku
       wirtualnych interfejsow sieciowych. Najmniej eleganckim -
       zainstalowanie kilku kart sieciowych :-)
     * odpowiednio skonfigurowac i uruchomic serwer WWW.

   W ostatecznym ukladzie sytuacja bedzie wygladac tak: na naszym
   komputerze bedzie pracowal jeden serwer www, ktory, w zaleznosci od
   tego do jakiego adresu "zapuka" klient serwowal bedzie inny zestaw
   informacji...

   Aby dodac alias IP w Linuxie (z jadrem 2.0) wystarczy (przy
   odpowiednio skompilowanym jadrze - opcje Network Aliasing i IP
   Aliasing w make config ) wydac polecenie:

/sbin/ifconfig eth0:10 192.168.17.1 broadcast 192.168.17.255 \
netmask 255.255.255.0

   Apache (nie rozgryzlem jeszcze do konca mechanizmu dzialania) pozawala
   poza tym zdefiniowac kilka serwerow wirtualnych na jednym nr IP.
     _________________________________________________________________

<VirtualHost nazwa_wirtualnego>
ServerAdmin webmaster@nazwa_wirtualnego
DocumentRoot /gdzies/w/systemie/
ServerName nazwa_wirtualnego
ErrorLog logs/nazwa_wirtualnego.errors
TransferLog logs/nazwa_wirtualnego.errors
</VirtualHost>
     _________________________________________________________________

   _Patrz tez:_
     *
       http://SunSite.ICM.edu.pl/pub/Linux/Documentation/HOWTO/mini/Virtua
       l-Web
     * wirtualny serwer w NCSA URL: http://hoohoo.ncsa.uiuc.edu/
     * wirtualny serwer w Apache URL:
       http://SunSite.ICM.edu.pl/pub/www/apache/docs/mod/core.html#virtua
       lhost

11.6 Robot exlusion

   Nalezy pogodzic sie z istnieniem rozmaitych robotow w pajeczynie ;-).
   To dzieki nim mozna przeszukiwac pajeczyne, to dzieki nim mozliwe jest
   tworzenie indywidualizowanych uslug dostarczajacych informacje a nie
   dane, wreszcie sprawdzanie poprawnosci powiazan pomiedzy dokumentami.
   A to, ze czasem maja ochote sciagnac, dynamicznie tworzone strony,
   albo rozmaite niepowolane zasoby (jak na przyklad nieopatrznie
   ,,odsloniety'' katalog z _wszystkimi_ RFC?) Jest na to rada. Juz w
   poczatkach WWW (czyli w lipcu 1994 r. ;-) zostal opracowany
   nieformalny standard _for Robot Exclusion _do ktore stosuja sie
   wszystkie ,,przyzwoite'' URL:
   http://info.webcrawler.com/mak/projects/robots/norobots.html roboty.
   Opiera sie on na sprawdzaniu przez robota istnienia pliku /robots.txt
   URL: http://www.webcrawler.com/robots.txt zawierajacego polecenia:
     * User-agent: (jako parametr nazwa robota URL:
       http://info.webcrawler.com/mak/projects/robots/active.html *
       znaczy - wszystkie)
     * Disallow: /nazwa/zasobu (jesli bez nazwy znaczy, ze robot moze
       indeksowac wszystko)

   . Poza tym istnieja (jeszcze niezbyt powszechnie uznane) zaklecia
   <META takie jak np <META name="robots" CONTENT="NOINDEX">

   _Patrz tez:_
     * http://info.webcrawler.com/mak/projects/robots/norobots.html
     * The Standard for Robot Exclusion URL:
       http://www.archive.org/robotexclusion.html
     * Standard for Robot Exclusion Revised URL:
       http://www.kollar.com/robots.html
     * Hypertext Links in HTML - W3C Working Draft URL:
       http://www.w3.org/pub/WWW/TR/WD-htmllink

11.7 Zagadnienia specyficzne dla poszczegolnych serwerow

  Apache

   O konfiguracji Apache mozna przeczytac w nastepujacych dokumentach:

     * http://SunSite.icm.edu.pl/pub/www/apache/
     * Internetowy Indianin, czyli instalacja APACHE'a URL:
       http://www.filg.uj.edu.pl/~lb/apache/
     _________________________________________________________________
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads