🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.answers
Article #244

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

#244
From: Ziemek Borowski
Date: Thu, 18 Sep 1997 09:40
398 lines
17026 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/ _http://www.hotbot.com/ _

   lub http://infoseek.ICM.edu.pl:8000 _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://www.webtools.org/counter/
   _  * http://icount.com/ _http://icount.com/ _
     * http://www.fxweb.holowww.com/tracker/index.shtml
       _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/ _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/ _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
       _http://SunSite.ICM.edu.pl/pub/Linux/Documentation/HOWTO/mini/Virt
       ual-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
       _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/
       _http://SunSite.icm.edu.pl/pub/www/apache/ _
     * Internetowy Indianin, czyli instalacja APACHE'a
       _http://www.filg.uj.edu.pl/~lb/apache/ _
     _________________________________________________________________
Technical Details
Message-ID: <5vqsto$fpt$1@sunsite.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!uw.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!agh.edu.pl!uw.edu.pl!news.icm.edu.pl!not-for-mail
From: Ziemek Borowski <ziembor@digilab.com.pl>
Newsgroups: pl.comp.www,pl.answers
Subject: pl.comp.www FAQ - 5/5 - serwery i bezpieczenstwo
Supersedes: pl.comp.www-873198343@ziembor.waw.pl
Followup-To: poster
Date: 18 Sep 1997 09:40:08 GMT
Organization: PSI DigiLab Sp.z o.o.
Lines: 399
Approved: rzm@adm.usenet.pl
Distribution: world
Message-ID: <5vqsto$fpt$1@sunsite.icm.edu.pl>
Reply-To: ziemek.borowski@ziembor.waw.pl
NNTP-Posting-Host: digilab.digilab.com.pl
Mime-Version: 1.0
X-Mailer: rpost z suck
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit