Tento blog je v současné době uzavřen.
Pokračování blogu na bloguje.cz jsem zrušil. Pokud budu někdy pokračovat, bude to spíš tady.
Zdá se, že ochrana proti komentářovému spamu, kterou zavedli administrátoři diskuse na Jak psát web, opravdu účinkuje. Při masivním útoku robotů v posledních dnech, na který si stěžoval například Jirka Chomát, jsem ji zkusil použít. Funguje. (Nezávisle na mně ji doporučují v komentářích i Dero a Jirka Macich.)
Ochrana je vlastně Kolumbovo vejce, razantní vylepšení známé metody. Tou metodou je jednoduchá otázka (nebo pokyn), kterou kladete návštěvníkům webu a na kterou živý člověk zná odpověď (robot ne). Třeba „Kolik je dvakrát tři?“ nebo „Které písmeno je na začátku abecedy?“. Příspěvek se zpracuje samozřejmě jen v případě, když je odpověď správná.
To má ale nevýhody:
Nedalo by se to vyplňovat nějak automaticky a neviditelně? Kupodivu ukazuje se, že dalo. Rozumné prohlížeče dnes totiž umějí Javascript na úrovni, kterou roboti (zatím) nezvládají. Konkrétně jde o metodu getelementbyid.
Ochrana tedy funguje takto:
Zde je ukázka kódu:
<form action="zpracuj_komentar.php" method="post"> <!-- zde jsou normální pole formuláře --> <p id="spamprotirobotum"> Ochrana proti spamu. Kolik je dvakrát tři? <input type="text" name="robot" value="" id="protirobotum"> </p> <script> /* tento skript vloží číslici do příslušného políčka automaticky */ document.getElementById("protirobotum").value="6"; document.getElementById("spamprotirobotum").style.display = "none"; </script> <p><input type="submit" value="Odeslat"></p> </form>
Serverový skript, který zpracovává data z formuláře, pak jenom zkontroluje, zda mu byla odeslána správná hodnota:
if ($_POST["robot"]*1==6) // pridej prispevek
Jedinou potenciální slabinou je to, že v kódu je uvedena správná odpověď. Dá se tedy asi napsat robot, který ze zdrojáku javascriptu vyčmuchá, co má vyplnit. To mu lze ovšem zkomplikovat tím, že se neuvede konstanta (zde "6"), ale výraz, zde například 7–1 nebo Math.round(5.8).
Další články si můžete vyhledat v jednotlivých přihrádkách, případně podle data.
© Honza Hučín 2004–6
Šuplík běží na PIPNI.CZ. Díky!
8. 8. 16:48 | Pepa
7. 8. 21:26 | Honza Hučín
7. 8. 21:02 | Honza
6. 8. 14:29 | Pepa
3. 8. 18:29 | Honza
*1967, absolvent MFF UK v Praze (1991)
statistik, analytik, programátor, učitel, hudebník