Přejít k navigační liště

Zdroják » Webový vývoj » Kniha návštěv: Sociální síť dřív, než to slovo existovalo

Kniha návštěv: Sociální síť dřív, než to slovo existovalo

Články ‐ ‐ Webový vývoj ‐

Než přišly lajky, sdílení a algoritmické feedy, měl skoro každý osobní web dole odkaz „Zapsat se do knihy návštěv“. Byl to jednoduchý formulář a textový soubor na serveru. A přesto v něm najdeme skoro všechno, co později vyrostlo do podoby sociálních sítí.

Nálepky:

Web, který neuměl odpovědět

První webové stránky byly jednosměrné médium. Autor napsal HTML, nahrál ho na server a čtenář si ho mohl přečíst. Nic víc. Pokud se návštěvník chtěl ozvat, musel opustit prohlížeč a napsat e-mail, o kterém navíc nikdo nevěděl, jestli ho autor vůbec čte.

Tohle omezení vadilo hlavně lidem, kteří si své stránky dělali pro radost: fanouškům seriálů a kapel, hráčům, programátorům amatérům, cestovatelům, malým spolkům. Chyběla jim zpětná vazba. Neměli statistiky ani komentáře, jen občasný e-mail. Kniha návštěv tuhle mezeru zaplnila v době, kdy slovo „komentář“ na webu ještě nikdo nepoužíval.

Samotný nápad není nový. Hotely, muzea a horské chaty mají knihy návštěv po staletí. Web si převzal zavedenou metaforu, kterou každý chápal bez vysvětlování: přišel jsem, byl jsem tu, tady je moje stopa. Právě v tom spočívá její síla. Uživatel nepotřeboval návod ani registraci, stačilo mu napsat jméno a vzkaz.

Anatomie jednoho zápisu

Z technického pohledu byla kniha návštěv učebnicovým příkladem toho, jak funguje dynamický web. Celý životní cyklus zápisu měl jen několik kroků:

  1. Prohlížeč zobrazil HTML formulář s poli pro jméno, e-mail, adresu webu a text.
  2. Po odeslání poslal data metodou POST na serverový skript.
  3. Skript data zpracoval, přidal je do souboru nebo databáze a vrátil návštěvníkovi odpověď.
  4. Stránka s knihou se při dalším načtení zobrazila už i s novým záznamem.

V devadesátých letech tuto práci obvykle dělal skript v Perlu, spouštěný přes rozhraní CGI (Common Gateway Interface). Web server při každém požadavku spustil samostatný proces, předal mu data v proměnných prostředí a standardním vstupu a výstup skriptu poslal zpět klientovi. Úložištěm býval obyčejný textový soubor, kam se záznamy prostě připisovaly na konec. Zjednodušená verze vypadala zhruba takto:

perl

#!/usr/bin/perl
use strict;
use warnings;
use CGI qw(param redirect);
use Fcntl qw(:flock);

my $soubor = 'kniha.html';
my $jmeno  = param('jmeno') // 'Anonym';
my $text   = param('text')  // '';

sub esc {
    my $s = shift;
    $s =~ s/&/&/g;
    $s =~ s/</&lt;/g;
    $s =~ s/>/&gt;/g;
    return $s;
}

open(my $fh, '>>', $soubor) or die "Nelze otevřít soubor: $!";
flock($fh, LOCK_EX);
print $fh '<p><b>' . esc($jmeno) . '</b><br>' . esc($text) . "</p>\n";
close($fh);

print redirect('/kniha.html');Code language: PHP (php)

Na tomhle krátkém kódu je vidět několik zajímavých věcí. Zámek souboru (flock) řeší souběžný přístup: když dva návštěvníci odešlou zápis ve stejnou chvíli, nesmí si navzájem přepsat data. Funkce esc řeší bezpečnost, ke které se ještě dostaneme. A přesměrování po zápisu je dnes známý vzor Post/Redirect/Get, který zabraňuje tomu, aby si uživatel obnovením stránky omylem odeslal formulář podruhé.

Později tuto roli převzalo PHP s databází MySQL. Princip zůstal stejný, jen přibyly stránkování, řazení a administrace. Pro začínajícího programátora ale byla kniha návštěv ideální první „opravdová“ aplikace: obsahovala formulář, zpracování vstupu, perzistenci dat i výpis.

Demokratizace dynamického webu

Velkou zásluhu na rozšíření knih návštěv mělo to, že je nikdo nemusel psát sám. V polovině devadesátých let se šířily sbírky hotových skriptů, mezi nejznámější patřil archiv, který pod názvem Matt’s Script Archive provozoval tehdejší student Matt Wright. Obsahoval mimo jiné počítadlo přístupů, formulář pro odeslání e-mailu a právě knihu návštěv. Stačilo skript stáhnout, upravit pár proměnných na začátku, nahrát ho do adresáře cgi-bin a nastavit práva.

Kvalita těchto skriptů byla různá a pozdější bezpečnostní audity nebyly k mnoha z nich laskavé. Jejich historický význam je ale nesporný. Poprvé si technicky nepříliš zdatný autor stránek mohl přidat interaktivní prvek bez znalosti programování. Podobně fungovaly i bezplatné hostingové služby, které nabízely knihu návštěv jako hotovou součást: stačilo vložit do stránky pár řádků HTML a o zbytek se postarala služba.

Co všechno tam už bylo

Když se na knihu návštěv podíváme očima dnešního vývojáře sociálních sítí, překvapí, kolik známých konceptů v ní najdeme.

Veřejný profil a identita. Návštěvník uváděl jméno nebo přezdívku, často i e-mail, adresu vlastních stránek a třeba číslo ICQ. Pseudonymy byly běžné, ale zároveň se na nich budovala pověst. Stálí návštěvníci se vraceli pod stejným jménem a stávali se součástí komunity.

Vzájemnost. Nepsaným pravidlem bylo „zapíšu se ti, zapiš se i ty mně“. Zápis v knize cizího webu byl pozvánkou k oplacení. Z pohledu sociologie šlo o klasickou reciprocitu, ze které později vzešlo vzájemné sledování, oplácení lajků i výměna komentářů pod fotkami.

Sociální graf. Zápis často obsahoval odkaz na vlastní stránky autora. Kdo klikl, přešel z jedné knihy návštěv do druhé a odtud dál. Vznikala síť propojených osobních webů, kterou doplňovaly webové kruhy (web rings) a seznamy přátelských odkazů. Nikdo ji nespravoval centrálně, a přesto fungovala jako objevování nového obsahu.

Moderace. Správce knihy mohl záznamy mazat, upravovat nebo skrývat. Chytřejší skripty uměly označit podezřelé zápisy, filtrovat vulgarismy a blokovat IP adresy. Tytéž problémy, které dnes řeší moderátorské týmy velkých platforem, tak v malém řešil jeden člověk večer po práci.

Odpovědi a vlákna. Pokročilejší knihy dovolovaly, aby autor na zápis odpověděl přímo pod ním. Z lineárního seznamu se stávala jednoduchá konverzace. Byl to předchůdce komentářů pod články a později vláken na diskusních fórech.

Notifikace. Zasílání e-mailu správci při každém novém zápisu bylo běžnou funkcí. Radost z toho, že „někdo mi napsal“, je přesně ta emoce, na které dnes stojí celé oznamovací systémy.

České prostředí

Česká scéna osobních webů a komunitních služeb měla svá specifika. Velká část uživatelů si vytvářela stránky na bezplatných hostingových službách, které nabízely i vlastní knihy návštěv, často s přednastaveným vzhledem a reklamou. Kniha návštěv se stala standardní součástí fanouškovských webů, školních stránek, stránek sportovních oddílů či hasičských sborů.

Zajímavé je, že česká síť přešla od knih návštěv k plnohodnotným sociálním službám poměrně plynule. Seznamky a komunitní portály z přelomu tisíciletí, které nabízely profily, galerie a zprávy mezi členy, stavěly na stejné myšlence: lidé chtějí zanechat stopu a vidět stopy ostatních. Kniha návštěv na osobním profilu pak byla jen jedním z pozdějších prvků, kterému se říkalo „zeď“ nebo „komentáře“.

Spam, SEO a první zkušenosti s nepřátelským internetem

S růstem webu se kniha návštěv stala cílem. Důvod byl prostý: každý zápis mohl obsahovat odkaz a odkazy začaly mít hodnotu. Jakmile vyhledávače začaly při řazení výsledků zohledňovat počet a kvalitu odkazů vedoucích na stránku, objevil se podnět k automatizovanému zanášení odkazů do všeho, co dovolilo zápis bez registrace.

Knihy návštěv se zaplavily zápisy typu „Pěkná stránka, navštivte i moje“ s odkazy na pochybné weby. Boj proti spamu začal u jednoduchých opatření a postupně se zpřísňoval:

  • ověření člověka pomocí obrázku s opsáním znaků (CAPTCHA),
  • skrytá „návnadová“ pole ve formuláři, která člověk nevidí, ale robot je vyplní (honeypot),
  • omezení počtu zápisů z jedné IP adresy za časový úsek,
  • předchozí schvalování zápisů správcem,
  • atribut rel="nofollow" u odkazů, který vyhledávače zavedly kolem roku 2005 právě jako reakci na zneužívání komentářů a knih návštěv.

Mnohé z těchto technik dodnes používáme prakticky beze změny. Kniha návštěv byla jedním z prvních laboratorních prostředí, ve kterých se webová komunita naučila, že každé otevřené pole pro vstup od uživatele je potenciálně zneužitelné.

Bezpečnostní lekce v přímém přenosu

Zmínili jsme funkci esc v ukázce výše. Není tam náhodou. Kniha návštěv je školním příkladem útoku zvaného vkládání skriptu (cross-site scripting, XSS). Pokud skript zapisoval vstup do HTML beze změny, mohl útočník do textu vložit značku <script> a každý následující návštěvník by tento kód spustil ve svém prohlížeči. Starší knihy návštěv navíc často dovolovaly vlastní HTML „pro hezčí formátování“, a otevíraly tak dveře i méně nápaditým škodám: rozbitému layoutu, nekonečným oknům, přesměrování na cizí stránky.

Obrana je dnes známá a stále platí stejná zásada: vstupu nevěř a při výstupu ho vždy ošetři podle kontextu, do kterého ho vkládáš. V HTML to znamená převést speciální znaky na entity, v atributech a URL postupovat jinak a v databázových dotazech používat parametrizované příkazy. Zápisy v knize návštěv přitom nejsou jen historická kuriozita. Jsou to nejmenší možný příklad uživatelského obsahu, na kterém si lze všechny tyto zásady vyzkoušet.

Proč kniha návštěv zanikla

Konec knih návštěv nebyl náhlý. Šlo o souběh několika vlivů.

Za prvé, spam zničil důvěryhodnost. Kniha plná reklam o léčivech a hazardu nikoho nelákala, a správci proto často radši formulář vypnuli, než aby se každý den přehrabovali stovkami nevhodných zápisů.

Za druhé, nastoupily blogy a jejich komentáře. Diskuse pod konkrétním textem měla jasný kontext, který obecný vzkaz „super web“ nikdy neměl. Kniha návštěv se tak zúžila na to, co zůstávalo mimo textové články.

Za třetí, a to je nejdůležitější, uživatelé se přesunuli k platformám, které jim nabídly víc. Profil s fotografiemi, seznam přátel, zprávy v reálném čase a později sdílení odkazů přesně dělaly to, co dříve zajišťovala řada oddělených drobných nástrojů, jen pohodlněji a s menším rizikem. Centralizace přinesla pohodlí. Za ni jsme ale zaplatili ztrátou nezávislosti: dříve patřil obsah na webu jeho autorovi, dnes patří platformě.

Co si z ní odnést

Je lákavé nad knihami návštěv jen sentimentálně vzdychat, ale užitečnější je vyčíst z nich praktické poučení pro dnešní práci.

Jednoduché nástroje umí vytvořit komunitu. Kniha návštěv neměla žádný algoritmus doporučování ani systém hodnocení. Její hodnota vznikala tím, že lidé mohli zanechat stopu a vrátit se k ní. Při návrhu dnešních služeb stojí za to si připomenout, že každá funkce má sloužit lidem, ne metrikám.

Otevřený vstup potřebuje obranu od prvního dne. Moderace, omezení četnosti, ošetření výstupu a ověření uživatele nejsou „pozdější vylepšení“. Pokud je odložíte, doženou vás vždy ve chvíli, kdy bude nejhůř.

Vlastní data jsou hodnota. Textový soubor se vzkazy bylo možné zálohovat, přenést a otevřít v čemkoli. Dnešní uzavřené platformy toto zaručit nemohou. Návrat k myšlence osobního webu, který komunikuje s ostatními prostřednictvím otevřených protokolů, tak není jen nostalgie. Vidíme ho například v rostoucím zájmu o decentralizované sítě a o vlastní weby, které jsou propojené odkazy a kanály RSS.

Jednoduchost je dobrý začátek. Kniha návštěv zůstává výborným cvičným projektem pro každého, kdo se učí programovat web. Formulář, validace, uložení, výpis, stránkování, ochrana před zneužitím, to vše se vejde do několika set řádků kódu. A když ji dokážete postavit bezpečně, rozumíte základům webového vývoje lépe než po přečtení mnoha učebnic.

Závěr

Kniha návštěv nebyla technicky nic převratného. Bylo to pár řádků HTML, skript a soubor na disku. Zato byla společensky převratná: poprvé dala obyčejným lidem možnost odpovědět autorovi webu a zanechat po sobě viditelnou stopu. Všechno podstatné, co dnes spojujeme se sociálními sítěmi, tedy identita, vzájemnost, komunita, moderace i zneužívání, se v ní objevilo v malém měřítku a bez označení „sociální síť“.

Možná proto má smysl se k ní občas vrátit, třeba při večerním programování pro radost. Postavte si vlastní knihu návštěv, napište ji pořádně a pak si ji zkuste pustit na veřejný web. Za týden zjistíte víc o bezpečnosti, moderaci a lidské povaze než z kdejakého semináře. A jestli se vám někdo zapíše, ucítíte přesně to, co cítili autoři osobních stránek před dvaceti pěti lety.

Komentáře

Odebírat
Upozornit na
guest
0 Komentářů
Nejstarší
Nejnovější Nejvíce hlasů

Rust pomohl vrátit JPEG XL do Chromu. Stačí to k úspěchu na webu?

Před čtyřmi lety Google podporu JPEG XL z Chromu odstranil. Teď formát vrací s dekodérem v Rustu, který vznikl na popud vývojářů Firefoxu. AVIF přitom může nabídnout menší soubory a bezeztrátový WebP rychlejší dekódování. JPEG XL má jiné přednosti: velkou fotografii dokáže zobrazovat už během stahování a staré JPEGy zmenší bez další ztráty kvality. Vedle historie jeho návratu se podíváme na výsledky srovnání, bezeztrátovou kompresi i praktické nasazení jednotlivých formátů na webu.

ISO, WIN, nebo MAC? Válka o kódování češtiny na webu

Kdo se webem zabýval na přelomu tisíciletí, zná ten pohled: stránka se načte a místo české věty se na ní objeví změť znaků jako ą, ľ a ». Nebyla to chyba monitoru ani písma. Byl to následek války, která se na českém internetu vedla po dlouhá léta. Šlo v ní o zdánlivou maličkost: jak do jednoho bajtu vměstnat písmeno „ř“. Podívejme se, kdo v ní proti komu stál, proč ji nešlo vyhrát a jak skončila.