🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.answers
Article #305

pl.comp.www FAQ - 5/5 - serwery i bezpieczenstwo

#305
From: 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/
     _________________________________________________________________
Technical Details
Message-ID: <67bg4a$c2o$1@sunsite.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!not-for-mail
From: Ziemek Borowski <ziembor@linux.ceu.edu.pl>
Newsgroups: pl.comp.www,pl.answers
Subject: pl.comp.www FAQ - 5/5 - serwery i bezpieczenstwo
Followup-To: poster
Date: 18 Dec 1997 15:39:54 GMT
Organization: ;-)
Lines: 395
Approved: rzm@adm.usenet.pl
Distribution: world
Message-ID: <67bg4a$c2o$1@sunsite.icm.edu.pl>
Reply-To: ziemek.borowski@ziembor.waw.pl
NNTP-Posting-Host: linux.ceu.edu.pl
Mime-Version: 1.0
X-Mailer: rpost z suck
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit