🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Ziemek Borowski Mon, 14 Jul 1997 03:49
pl.comp.www FAQ - 5/5 - serwery i bezpieczenstwo
#200
Author: Ziemek Borowski
Date: Mon, 14 Jul 1997 03:49
392 lines
16628 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
   <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 <http://hughes.com.au/> (choc baza ta dostepna jest za darmo
       jedynie dla instytucji edukacyjnych),
     * miniSQL - T.c.X. Data Konsult <http://www.tcx.se/>
     * dostepny teoretycznie za darmo choc na dziwnych zasadach
       MICRO/CDS/ISIS <http://www.medianet.com.pl/%7Ecc/> rodem z UNESCO.
     * Oracle <http://www.oracle.com/>
     * Essentia <http://www.inter-soft.com/products/essentia/>

   _Patrz tez:_
     * Michal Mosiewicz _Linux i bazy danych_ {w:} Linux+
       <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 <http://www.eit.com/software/swish/>
     * GlimpseHTTPd <http://glimpse.cs.arizona.edu/ghttp/> (kopia na
       SunSite.ICM) <http://SunSite.ICM.edu.pl/pub/unix/glimpse/>
     * ht://Dig <http://htdig.sdsu.edu/> (RPM na SunSite.ICM)
       <http://SunSite.ICM.edu.pl/pub/Linux/redhat-contrib/i386/>
     * freeWais
       <http://ls6-www.informatik.uni-dortmund.de/ir/projects/freeWAIS-sf
       />
     * Exite <http://www.exite.com/> (choc jeszcze nie na Linuxa)
     * DEC AltaVista <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";
     _________________________________________________________________
     _________________________________________________________________

     _________________________________________________________________

  11. Serwery

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

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

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

   Inni preferuja Apache 1.2 <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
   <http://www.SendMail.org/> ), ze skutecznie przetestowane ( Netcraft
   <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 <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 <http://www.Novell.com.pl/>
   powinni przyjrzec sie serwerowi YAWN <http://www.cpu.lublin.pl/yawn/>
   napisanemu w Lublinie przez Artura Urbanowicza
   <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 <http://www.microsoft.com/poland/> (gdy mowa o serwerach
       mamy do wyboru _Personal Web Serwer_ , albo _Internet Information
       Serwer_ )
     * NetScape Comunication <http://home.netscape.com/>
     * Lotus/IBM <http://www.lotus.com/> i Lotus Notes wraz serwerem HTTP
       Domino <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
       <http://hoohoo.ncsa.uiuc.edu/docs/setup/ConfigureInfo.html#Directi
       ve>

  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
       <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 <http://hoohoo.ncsa.uiuc.edu/>
     * wirtualny serwer w Apache
       <http://SunSite.ICM.edu.pl/pub/www/apache/docs/mod/core.html#virtu
       alhost>

  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''
   <http://info.webcrawler.com/mak/projects/robots/norobots.html> roboty.
   Opiera sie on na sprawdzaniu przez robota istnienia pliku /robots.txt
   <http://www.webcrawler.com/robots.txt> zawierajacego polecenia:
     * User-agent: (jako parametr nazwa robota
       <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
       <http://www.archive.org/robotexclusion.html>
     * Standard for Robot Exclusion Revised
       <http://www.kollar.com/robots.html>
     * Hypertext Links in HTML - W3C Working Draft
       <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
       <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