WebToDate/Poradny a rozhovory/Ochrana proti spamu: Porovnání verzí

Z WebToDate
Skočit na navigaciSkočit na vyhledávání
 
(Není zobrazena jedna mezilehlá verze od stejného uživatele.)
Řádek 69: Řádek 69:
Metoda spočívá ve vyhledávání zakázaných výrazů v textu vkládaného příspěvku. Nevyžaduje žádné změny v HTML kódech formulářů, je ale třeba naplnit slovník zakázaných slov. Metoda se zapíná pomocí volby '''Vyhledávání spamu podle obsahu příspěvků''' v antispamovém profilu.
Metoda spočívá ve vyhledávání zakázaných výrazů v textu vkládaného příspěvku. Nevyžaduje žádné změny v HTML kódech formulářů, je ale třeba naplnit slovník zakázaných slov. Metoda se zapíná pomocí volby '''Vyhledávání spamu podle obsahu příspěvků''' v antispamovém profilu.


Slovník nežádoucích výrazů se spravuje pomocí funkce '''Nastavení''' - '''Globální''' - '''Filtr slov''', v seznamu výrazů je třeba zaškrtnout u zadaného výrazu příznak ''Spam'' (slovník lze použít i pro filtr nežádoucích výrazů, kdy se příspěvek sice vloží, ale výraz je nahrazen definovaným řetězcem). Slovník je společný pro všechny diskuzní skupiny, ale oddělený pro každý jazyk (jazyk diskuze se specifikuje ve formuláři pro vlastnosti diskuzní skupiny).
Slovník nežádoucích výrazů se spravuje pomocí funkce '''Nastavení''' - '''Globální''' - '''Filtr slov''', v seznamu výrazů je třeba zaškrtnout u zadaného výrazu příznak ''Spam''. Slovník je společný pro všechny poradny, ale oddělený pro každý jazyk (jazyk poradny se specifikuje ve formuláři pro vlastnosti poradny).


=== Opisování kontrolních kódů ===
=== Opisování kontrolních kódů ===
Řádek 75: Řádek 75:
Tato metoda jako jediná z podporovaných metod ochrany vyžaduje interakci koncového uživatele - ve vstupním formuláři se mu vypisuje textový řetězec, který musí opsat do daného formulářového pole (naznačeno na následujícím otisku obrazovky).
Tato metoda jako jediná z podporovaných metod ochrany vyžaduje interakci koncového uživatele - ve vstupním formuláři se mu vypisuje textový řetězec, který musí opsat do daného formulářového pole (naznačeno na následujícím otisku obrazovky).


[[Image:diskuze55-opisovani-kontrolniho-kodu.jpg|center]]
[[Image:poradny-opisovani-kontrolniho-kodu.png|center]]


Tato metoda se zapíná v antispamovém profilu volbou '''Opisování kontrolních kódů'''. Lze zde zvolit, v jakém tvaru se kódy generují. Délku kódu je možné zvolit v intervalu 1 až 50 znaků, dále lze zvolit, zda se jedná o číslice, písmena či obojí, pokud jde o písmena, tak zda se generují malá či velká písmena apod. (při ověřování se pak malá a velká písmena rozlišují). Písmena se generují při jakékoliv volbě vždy pouze bez diakritiky.
Tato metoda se zapíná v antispamovém profilu volbou '''Opisování kontrolních kódů'''. Lze zde zvolit, v jakém tvaru se kódy generují. Délku kódu je možné zvolit v intervalu 1 až 50 znaků, dále lze zvolit, zda se jedná o číslice, písmena či obojí, pokud jde o písmena, tak zda se generují malá či velká písmena apod. (při ověřování se pak malá a velká písmena rozlišují). Písmena se generují při jakékoliv volbě vždy pouze bez diakritiky.

Aktuální verze z 23. 10. 2009, 09:51

Nasazení ochrany proti spamu

Modul Poradny a rozhovory bez zapnuté ochrany je vystaven nežádoucímu automatickému vkládání příspěvků spamovacími roboty (formulářovému spamu). To může znamenat problémy jak obsahové (poradna se stává nepoužitelnou z hlediska obsahu) tak technické (nežádoucí nárůst objemu databáze a zatížení serveru). Modul proto obsahuje řadu opatření, která mohou bránit vkládání formulářového spamu.

Postup nasazení ochrany proti spamu je následující:

  1. Nadefinuje se chování funkce pro vkládání dotazů v případě, že je příspěvek detekován jako spam. Toto se provádí v nastavení nazvaném Je-li příspěvek detekován jako spam ve formuláři Nastavení - Globální - Odmítnutí přístupu administračního rozhraní modulu.
  2. Vytvoří se antispamový profil - pojmenovaná sada nastavení, která definuje, jak se má ochrana proti spamu chovat a která opatření mají být aktivní. Toto se provádí v administračním rozhraní modulu pomocí funkce Administrace - Antispamové profily.
  3. U poradny, která má být chráněna proti spamu se vybere založený antispamový profil, což se provádí ve formuláři pro vlastnosti poradny (Administrace - Poradny).
  4. Provedou se potřebné implementační práce. Tento krok je vyžadován pouze pro některé typy opatření proti spamu, některá opatření fungují bez nutnosti dalších úprav vstupních formulářů či jiných změn. Typy opatření proti spamu a jejich aplikace je popsána v další kapitole.

Typy ochrany proti spamu

Kontrola URL volající stránky

Diskuzní příspěvky v modulu se ukládají pomocí skriptu /scripts/modules/advice/newquestion.php. Robot může tento skript volat přímo (tj. metodou POST uložit příspěvek), člověk vždy ale nejprve zobrazí formulář na některé ze stránek modulu. Metoda spočívá v tom, že se nejprve kontroluje, zda URL referující stránky obsahuje /scripts/modules/advice/ ze stejného serveru, pokud ne, předpokládá se, že jde o robota a příspěvek se neuloží.

Jedná se o jednoduchou metodu, která nepracuje s databází a neklade žádné nároky na návštěvníky serveru. Aktivuje se pouhým zaškrtnutím volby Kontrola URL volající stránky v antispamovém profilu.

Formulářová návnada

Metoda spočívá v tom, že roboti se snaží vyplnit všechna pole formuláře. Do formuláře se tedy vloží nějaká skrytá pole, která člověk nevidí (hidden formulářová pole nebo ještě lépe skrytá pomocí CSS), pokud některé z polí je vyplněno, usoudí se, že jde o robota a příspěvek se neuloží.

V předvolbách modulu se vyplní seznam jmen polí formuláře, která se ve skriptu kontrolují na neprázdnost, administrátor ručně vloží HTML kódy těchto polí do formuláře.

Metoda je jednoduchá, nepotřebuje databázové operace při zobrazení vstupního formuláře a neklade žádné nároky na návštěvníky serveru.

Funkce se aktivuje zaškrtnutím volby Formulářová návnada v antispamovém profilu a zadáním jednoho nebo několika názvů polí do formulářového pole Názvy polí formuláře. Je vhodné zvolit názvy, u kterých lze očekávat "atraktivnost" pro spamovací roboty (např. message apod.), nelze ale použít názvy polí, které modul používá interně, konkrétně jde tedy o následující názvy polí:

id
email
nickname
firstname
lastname
name
question
private
url
ccid
ccvalue

Následně je třeba doplnit do HTML kódu vstupního formuláře pole s těmito názvy, tedy např.

<input type="text" name="message" class="skrytatrida" />

(v CSS formátování musí být zajištěno nezobrazování pole), nebo

<input type="hidden" name="message" value="" />

Hodnota atributu name musí samozřejmě odpovídat názvu zadanému v administrační části modulu.

Seznam zakázaných IP adres

Jedná se o jednoduchou filtraci vkládaných příspěvků na základě porovnání IP adresy počítače vkládajícího příspěvek se seznamem zakázaných IP adres. Metoda nevyžaduje žádné úpravy v HTML kódech, je ale nutno spravovat (zpravidla průběžně) seznam zakázaných adres.

Metoda se aktivuje zvolením Seznam zakázaných IP adres v antispamovém profilu. Následně je třeba v rámci zodpovídání dotazů spravovat seznam adres.

Základním nástrojem pro správu seznamu zakázaných adres je funkce Data - Zakázané IP adresy modulu. Zde lze běžným způsobem editovat seznam adres, lze zadávat pouze kompletní adresy, není podporována nějaká hvězdičková konvence. Druhou možností je přímo z editačního formuláře pro dotazy použít v záložce Vlastnosti tlačítko Zakázat adresu.

Seznam zakázaných adres je pro diskuzní modul pouze jeden, přidaná adresa je tedy zakázána ve všech diskuzních skupinách, která mají v antispamovém profilu tuto metodu zapnutou.

Vyhledávání spamu podle obsahu příspěvků

Metoda spočívá ve vyhledávání zakázaných výrazů v textu vkládaného příspěvku. Nevyžaduje žádné změny v HTML kódech formulářů, je ale třeba naplnit slovník zakázaných slov. Metoda se zapíná pomocí volby Vyhledávání spamu podle obsahu příspěvků v antispamovém profilu.

Slovník nežádoucích výrazů se spravuje pomocí funkce Nastavení - Globální - Filtr slov, v seznamu výrazů je třeba zaškrtnout u zadaného výrazu příznak Spam. Slovník je společný pro všechny poradny, ale oddělený pro každý jazyk (jazyk poradny se specifikuje ve formuláři pro vlastnosti poradny).

Opisování kontrolních kódů

Tato metoda jako jediná z podporovaných metod ochrany vyžaduje interakci koncového uživatele - ve vstupním formuláři se mu vypisuje textový řetězec, který musí opsat do daného formulářového pole (naznačeno na následujícím otisku obrazovky).

Tato metoda se zapíná v antispamovém profilu volbou Opisování kontrolních kódů. Lze zde zvolit, v jakém tvaru se kódy generují. Délku kódu je možné zvolit v intervalu 1 až 50 znaků, dále lze zvolit, zda se jedná o číslice, písmena či obojí, pokud jde o písmena, tak zda se generují malá či velká písmena apod. (při ověřování se pak malá a velká písmena rozlišují). Písmena se generují při jakékoliv volbě vždy pouze bez diakritiky.

Dále je třeba doplnit potřebný kód do vstupního formuláře, např. takto:

<input type="hidden" name="ccid" value="<!--WTD_SPAMCHECK(CCHIDDEN)-->" />
Opište následující kód (povinné): <span class="abc"><!--WTD_SPAMCHECK(CCVISIBLE)--></span>
<input type="text" name="ccvalue" value="" /> 

Při zobrazení formuláře se pak za klíčové slovo <!--WTD_SPAMCHECK(CCHIDDEN)--> vygeneruje interní unikátní identifikátor (pseudonáhodné číslo, vždy 18 číslic), za klíčové slovo <!--WTD_SPAMCHECK(CCVISIBLE)--> se dosadí kód k opsání. Uživatel musí vložit tento kód do formulářového pole nazvaného ccvalue, na serveru se kontroluje správné vyplnění kódu při odeslání formuláře.

Interní princip je takový, že se na serveru v databázi generují dvojice interní unikátní identifikátor - kód k opsání, k ověření jsou tedy potřeba oba údaje. Tyto dvojice se z databáze automaticky neodstraňují, proto je vhodné použít plánovanou úlohu Antispamová kontrola - odstranění starších dat, která starší záznamy maže.

Tato metoda podporuje hlášení (vložené do předlohy s formulářem) typu

<!--WTD_IF(SPAMWRONGCC,"Zadaný kontrolní kód není správný")-->

Pomocí tohoto hlášení je možné uživatele uvědomit, že při opisování kódu došlo např. k překlepu, zároveň se zobrazí ve stránce nově vygenerovaný kód k opsání.