-
Komentářový spam, jak se bráníte?
Rád bych navázal na 2 roky starý thread, kde se řešil problém komentářového spamu. Doba pokročila, tak bych chtěl vědět, jakým způsobem se změnily techniky útočníků a obrana proti nim.
V té době jsem mimojiné navrhoval filtrování pomocí hodnoceného slovníku.
Dnes jsem po velmi dlouhé době koukal do svého spam koše a bylo v něm velké množství odchycených spamů, žádný špatně detekovaný a na web se také nic nedostalo. Na svém webu používám právě slovník, který jsem před 2 lety nastavil a od té doby jede... Nicméně je mnoho dalších botů, kteří se ke mě nedostali a mohli by filtrem projít....
Tak jsem se chtěl zeptat co používáte vy a jak to šlape.
Další možnosti obrany, které znám:
Přidání do formuláře dalšího čudlíku submit, který je skrytý, bot odešle i jej, člověk jen pravý submit, na který klikne, to jsem asi před rokem navrhoval jako jedno řešení, ale ten člověk se nakonec rozhodl pro Captchu, tak nevím jestli to funguje....
Captcha - klasické obrázkové hesla, která často dělají i člověku je rozluštit.... beru ji jako user-unfriendly
Kontrolní otázka - třeba kolik je 1+2, to je fajn, nicméně to beru také jako u-unf
Vkládání hodnoty JS - javasriptem se vloží něco do formuláře, stojí na tom, že spamboti neprováději JS z důvodu rychlosti (čímž si nejsem za ty 2 roky jistý, když se vezme fakt, že louskají captchu) a odřízen to nonJS uživatele
Kombinace předchozích 2 - kontrolní otázka, která se JS skryje a vyplní třeba při onclick, když uživatel nemá JS, otázka se mu normálně zobrazí, když je to bot, tak buď JS neumí (?) a nebo třeba nezparcovává onclick a posílá formulář rovnou, což by mohlo fungovat...
Uvítal bych i odkaz na weby, které jsou zaspamované, abych mohl případně analyzovat jak dnešní příspěvky vypadají jinde než u mě.
-
Re: Komentářový spam, jak se bráníte?
pouzivam captchu, kedze je casto implementovana a ready-to-use...
nie je to vzdy ucinne, kedze boti vedia rozpoznavat aj captchu ak to nie je lustenka(co uz je zase user unfriendly)...
-
Re: Komentářový spam, jak se bráníte?
Myslím že nejlepší je opravdu kombinace kontrolní otázky a skrýt ji pomocí javascriptu uživatel většinou ani nepozná že tam nějaká kontrola je + že nebude tlačítko Odeslat/Uložit ale Náhled který pouze zprávu zobrazí a po dalším odeslání formuláře teprve uloží, boti totiž formulář odešlou ale dál už se o to nestarají.
-
Re: Komentářový spam, jak se bráníte?
V nejbližších dnech budu řešit odspamování tohoto fóra (SMF):
http://diskuze.deticky.cz/
Moderátoři to tam zatím občas čistí, ale párkát v týdnu tam přibyde tak 10-20 spamových komentářů. Přibývají do sekcí do kterých je povoleno psát bez registrování, což by chtěl provozovatel zachovat.
Od známého jsem dostal tip na tu hádanku 1+1 vyplněnou a skrytou přes JS, jemu to někde funguje. Ale radši bych vyzkoušel to skryté tlačítko. Jestli to zabere, tak dám vědět.
-
Re: Komentářový spam, jak se bráníte?
Kód:
<span id="antispam">
Kolik je 2x2?<input type="text" id="check">
</span>
<script type="text/javascript">
document.getElementById("check").value="4";
document.getElementById("antispam").style.display="none";
</script>
ja preferuji toto reseni. je funkcni a znam minimalne dalsi dva weby, kde je stale 100% ucinne. pokud ma uzivatel vypnuty nebo jakkoliv nefuncni javascript, tak ho to neodstrihne, ale holt si musi vyplnit kontrolni otazku rucne. urcite by bylo zajimave udelat nejakou statistiku nebo pocitadlo, kolik lidi prispiva takto s rucnim vyplnenim pole check.
-
Re: Komentářový spam, jak se bráníte?
peshwood: to budu rád, jsem zvědavej na výsledky z praxe
Já jsem zatím spokojenej se slovníkovou analýzou, kterou jsem napsal před 2 lety, pár stovek spamů to chytlo a zatím nic neproklouzlo, takže zatím nebudu rejpat do něčeho co funguje :-) Ale co platí dnes, nemusí platit zítra...
A až mi to přestane fungovat, chtěl bych zkusit právě skrytý čudlík, nebo automatické vyplnění skrytého pole.
Pro experimentátory, používám primitivní kód:
Kód:
$slovnik=file("slovnik.txt");
$text=strtolower($_POST["text"]);
$spam=0;
for ($i=0;$i<sizeof($slovnik);$i++){
$filter=explode(',',$slovnik[$i]);
$spam=$spam+(substr_count($text,$filter[0])*$filter[1]);
}
V proměnné $spam je pak hodnota, mám nastaveno, že pokud je větší než 25, tak se to zahodí
Jako slovník mám:
Kód:
http://,1
buy,2
viagra,5
order,3
cheap,3
discount,3
valium,5
tramadol,5
hydrocodone,5
fioricet,5
adipex,5
free,2
porn,4
flyfolder,2
federal,2
tax,2
myspace,1
[url,2
custom,2
teen,1
href,1
pussy,4
nude,4
cam,2
boob,3
tits,3
xxx,2
fuck,3
casino,2
online,1
poker,2
play,1
Případný test: http://smitka.org/spam.php
-
Re: Komentářový spam, jak se bráníte?
Prozkoumal jsem trošku ty spamy na diskuze.deticky.cz a ještě jsem podle toho trochu rozšířil svůj filtr, ať mi ještě nějakou dobu vydrží bez úprav :-)
BTW: http://diskuze.deticky.cz/vyber-koca...rku-t30.0.html by také chtěl trochu promáznout.
-
Re: Komentářový spam, jak se bráníte?
Nechci dělat nějaké unáhlené závěry, ale vypadá to, že ten spamovací robot na dětičkách je proti tomu druhému skrytému tlačítku imunní. V SMF je totiž odeslání příspěvku zpracováno tak, že pokud je nastavené tlačítko preview (tj. if (isset($_REQUEST['preview']))), tak se zobrazuje náhled příspěvku. Jinak se pokračuje dál na vložení příspěvku do databáze atd. Tudíž pokud by robot odeslal všechna tlačítka, došlo by k zobrazení náhledu, ne k uložení příspěvku.
-
Re: Komentářový spam, jak se bráníte?
Ahoj,
já jsem měl na webu udělaný input, který byl skrytý přes css. To znamená, jestliže ho někdo vyplnil = bot. Takže to neprošlo, ale po čase to začlo být neúčiné.
Momentálně používám input, kam se musí vyplnit něco smysluplného = user unfrindly.
Jey má docela zajímavé řešení, musím někdy zkusit.
-
Re: Komentářový spam, jak se bráníte?
Používám většinou CAPTCHU vyplňovanou přes JS... A nemůžu si stěžovat.
-
Re: Komentářový spam, jak se bráníte?
Taky jsem si udelal priklad predvyplneny a skryty pomoci JS, v tom duchu, jak je zmineno. Chvilku to fungovalo, ale pak jeden bot prosel i tim. Jako druhou vrstvu jsem tedy nasadil analyzu textu prispevku. V planu jsem mel puvodne nejaky ohodnoceny slovnik apod., ale zatim jsem si vystacil s dobre vyvazenym filtrem na pomer mezi delkou textu a poctem odkazu (zjednodusene receno). Zatim drzi :)
-
Re: Komentářový spam, jak se bráníte?
Mame na par weboch jedno stare (robene) diskusne forum. Este nikdy som tam nevidel spam. Mam pocit, ze dovod je ten, ze sa sprava neda odoslat hned - najprv sa ukaze preview a ten treba este odoslat.
V komentaroch pod clankami sa to odosielalo hned a to bolo spamu plne.
-
Re: Komentářový spam, jak se bráníte?
Tak se mi to docela rozjelo...
Chodi mi ted cca 20 spamu denne. Zatim mi nic neproslo, ale uz se to zacina blizit hranici filtru...
Asi udelam pokus, ze prejmenuju soubor na vkladani komentaru a na tom soucasnem vyzkousim ruzna antispam reseni...
-
Re: Komentářový spam, jak se bráníte?
Tak si me uz nasli, spamu extremene pribylo... Zacly chodit i kratky - asi testovaci - s nejakym divnym retezcem... Tak jsem provedl dalsi 3 opatreni
1) zmenil jsem nazev souboru co zpracovava kometare
2) pridal jsem javasriptovy doplneni pole (priklad typu 3+4)
3) nastrazil jsem csskem schovane policko "nick"
4) jeste testuju filtrem
Tak by to snad melo fungovat, uvidim.
Provel jsem i testy jednotlivych reseni vyse, vsechny byly uspesne.
Neuspesny byl test s dalsim submitem, ale to bylo z duvodu, ze spousta botu odesila na uz naucenou adresu a kdyz se prida input, tak jim to nevadi, ale pokud se tahle ochrana dala na novy web, tak by mela byt pomerne ucinna :-)
-
Re: Komentářový spam, jak se bráníte?
Citace:
Původně odeslal
Smitka
Neuspesny byl test s dalsim submitem, ale to bylo z duvodu, ze spousta botu odesila na uz naucenou adresu a kdyz se prida input, tak jim to nevadi, ale pokud se tahle ochrana dala na novy web, tak by mela byt pomerne ucinna :-)
No on ten dvoj-submit (nahled->odeslat) ma fungovat tak, aby to prave neslo posilat primo na adresu zpracujiciho skriptu. Melo by stacit po prvnim odeslani formulare vygenerovat token a ten pri dalsim zpracovani zkontrolovat. Kdyz nebude spravne, odmitnout. (Aspon tak bych to programoval, nerealizoval jsem to.)
-
Re: Komentářový spam, jak se bráníte?
Citace:
Původně odeslal
ripper
No on ten dvoj-submit (nahled->odeslat) ma fungovat tak, aby to prave neslo posilat primo na adresu zpracujiciho skriptu. Melo by stacit po prvnim odeslani formulare vygenerovat token a ten pri dalsim zpracovani zkontrolovat. Kdyz nebude spravne, odmitnout. (Aspon tak bych to programoval, nerealizoval jsem to.)
Bavime se o trosku odlisnem reseni... "Muj" dvoj submit jsou 2 submity, jedem z nich je driv a je skryty, bot kdyz stranku prozkoumava, tak najde prvni skryty submit a odesle formular pres nej. Clovek odesila pres normalni viditelny.
Je to primitivni pasticka...
Samozrejme generovani nahledu a tokenu je velmi dobre reseni :-)
-
Re: Komentářový spam, jak se bráníte?
Zajimavy clanek k tematice - http://blog.synopsi.com/2008-02-26/g...esne-prelomena (nejedna se o prakticke reseni, jen uvahy o prolomeni capchy).
Capchy jako uzivatel bytostne nesnasim, u nekterych mam uspesnost mensi nez robot :-)
-
Re: Komentářový spam, jak se bráníte?
musim podotknout, ze captchu take bytostne nesnasim. posledni dobou navic hojne pribyva webu, kdy se ty znaky musi doslova a do pismene lustit a i kdyz dobre vidim, tak u toho fakt dost casto jsem na nervy. pritom takova blbost, ale ty vygenerovane zacmarane znaky kolikrat nejdou rozumne precist.
http://hanspaulka.wz.cz/index.php?forum
na svem webu jsem z javascriptem predvyplneneho a stejne tak i javascriptem schovaneho pole ve formulari(reseni jsme zde popisoval a nekteri z vas ho i pouzili) presel na vygenerovani 5mistneho cisla a nuceni navstevniku ho opsat do pole vedle. myslim, ze si to mohu dovolit. captcha je dneska temer vsude a to i v daleko mene uzivatelsky prijemnych podobach. rozumny navstevnik to pochopi. navic u me je to user friendly, ze se nemusi znaky lustit z obrazku, ktery by byl jeste zacmarany, ale generuji se jako text. myslim ze hodne dlouho nebudou existovat roboty ktere by vedely co s tim. na mojem webu to asi louskat nikdo nebude. ale samo chapu, ze treba pro google je toto me reseni nepouzitelne.
-
Re: Komentářový spam, jak se bráníte?
Připíšu pár poznámek o tom, jak se chovají moji známí komentářoví roboti, kteří se snaží zasvinit moje diskusní fóra:
1. Prvotní GET na zadávací form přichází s prázdným "referer", kdežto lidský vstup má vždy regulérně referer=stránka s odkazem "vložit příspěvek".
2. POST následuje vždy do max. 15 sekund (typicky 2-7), člověk potřebuje alespoň minutu na vyplnění formuláře, i kdyby měl text připravený a jen ho tam vlepil ze schránky. Referer je zde už správně z předchozího GETu.
3. Jestliže je tento POST odmítnut (chyba při opsání verifikačního kódu apod.) a stránka obsahuje také form, následuje do 15 sekund další POST. Jestliže je spolehlivě detekován spambot a na stránce už není form, ale jen text a odkaz "pokračuj", je tento odkaz také následován do 15 sekund. Další pokusy už nedělá.
5. Obsah textu: vždy je tam alespoň jeden odkaz <A href=..., obvykle ale až pět.
6. IP: spamy chodí vždy z různých IP, asi aby se nemohly zabanovat. Tyhle IP jsou většinou obsaženy v různých blacklistech jako open proxy. Mnohdy také přijde sekvence GET-POST-POST ze vzájemně různých IP.
7. Spambot si nedělá vrásky s JavaScriptem, který by případně skrýval falešné ovládací prvky nebo nastavoval jejich hodnotu apod. Styly, které by je skrývaly, jsem nezkoušel, ale nejspíš na ně ten spambot také ignoruje.
8. V textu nebylo použito žádné slovo ze slovníku, který uvádí Smitka (viz příspěvek výše, 27.1.2008).
Z toho je patrné, že můj spambot je nejspíš jen jeden, a hodně hloupý.
Protože mám snahu příliš nebuzerovat uživatele opisováním nějakých nesmyslů nebo je zkoušet z násobilky, koketuji s myšlenkou identifikovat robota na základě uvedených vlastností. Z toho je asi zásadní především existence odkazu v textu - spam bez odkazu totiž nemá zřejmě vůbec smysl.
Jako schůdný mi vychází tento scénář:
- zpočátku nabídnout formulář bez verifikace, pokud v požadavku bude korektní referer, jinak ještě přidat Captchu nebo něco podobného. Dotaz na open-relay databáze by se taky dal udělat, ale bojím se, že by to bylo časově náročné.
- pokud bude v textu odkaz, pokračovat potvrzením, ve kterém už bude Captcha, jinak ho normálně zpracovat.
Celkově mám dojem, že účelem tohoto spamu ani tak není přimět čtenáře ke kliknutí, jako zvyšovat skóre v Googlu.
-
Re: Komentářový spam, jak se bráníte?
Tak ze slovníku muselo být uvedeno minimálně http ;-)
Jinak prozatím mi moje nová trojitá ochrana drží a ke zpracování pomocí slovníku se zatím nic nedostalo, což mě prozatím těší, ale musím zaklepat :-)
Na mojich stránkách řádí boti a ti referal vyplňují korektně :-( takže to na univerzální ochranu nelze použít.
Capcha mi poslední dobou přijde dost šílená, čím dál více toho prostě nerozluštím...
-
Re: Komentářový spam, jak se bráníte?
HTTP ze slovníku: jo, jasně, to tam je, já mám detekci odkazu jinde.
Už se mi taky spamy na ten slovník chytly, předtím jsem měl málo vzorků.
Slovník jsem ještě doplnil: horny, ephedrine, dude, topless
Taky jsem (provizorně) zahodil Captchu a dělám to tak, že když příspěvek nasbírá "tutové" skóre z těchto faktorů:
- nekorektní referer
- POST následuje po GET dříve než 15 s
- slovník
- existence odkazu v textu
tak ho zahodím. Když nasbírá skóre "pravděpodobně", tak ho zapíšu s příznakem "Nezobrazovat", do textu dalšího kroku, kde normálně je "děkujeme za zaslání příspěvku.." taky červeně napíšu něco ve smyslu "příspěvek bude zobrazen až po kontrole moderátorem" a pošlu si e-mail. Na tom budu pár dní ladit váhy pro skóre a pak se uvidí, jak to funguje.
Další zajímavá věc: zkoušel jsem odkazy v těch spamech a ejhle: na 90% z nich dostanu 404 not found...
-
Re: Komentářový spam, jak se bráníte?
Ja na blogu WP mám jednoduchší spôsob. Keď spambot spamuje, tak dáva sa snaží o reklamu na nejaký web, prípadne len dáva komentáre typu nice page so odkazom na svoju stránku, ktorej chce zvyšovať PR. Akonáhle je v texte nejaký odkaz, ide po odoslaní najprv moderačnú listinu. Takto neotravujem bežného smrtelníka ktorý nie je registrovaný s Capcha. Mám ešte nastavené že v prípade že prispievateľ je nový (ešte nepoužitá kombinácia mena a mailu), tak sa čaká na moderovanie, ale to už je iba ďalšia vychytávka proti vandalom.
-
Re: Komentářový spam, jak se bráníte?
Citace:
Původně odeslal
pavelch
...
- POST následuje po GET dříve než 15 s
Dal bych tam alespoň nějaké textové upozornění, že pokud na to klikne do 15 vteřin, tak se to zahodí. Nejlépe pomocí JS do odesílacího buttonu ;) --- počkejte ještě [7s]... Očas se to prostě stát může, že někdo bude rychlejší než 15s. Samozřejmě, že to nebude blokovat to tlačítko... ...I když... proč ne, že?
-
Re: Komentářový spam, jak se bráníte?
mne funguje skryta kontrolna otazka, presne tak to mam ako Jey... a odkedy to mam tak ziadny spam. niekde som cital ze boti JS nevidia, a ziaden bot asi nebude vymyslat retazec aaa111 ;)
-
Re: Komentářový spam, jak se bráníte?
Citace:
Původně odeslal
Camillek
Dal bych tam alespoň nějaké textové upozornění, že pokud na to klikne do 15 vteřin, tak se to zahodí. Nejlépe pomocí JS do odesílacího buttonu ;) --- počkejte ještě [7s]... Očas se to prostě stát může, že někdo bude rychlejší než 15s. Samozřejmě, že to nebude blokovat to tlačítko... ...I když... proč ne, že?
Timeout na submit tlačítko jsem taky zkoušel, myslím na 10s, ale něco tím proklouzlo a přišlo mi, že pro člověka (zvlášť, pokud na ty stránky chodí často) je to zas už moc... S filtrem na poměr počtu odkazů a celkového textu jsem zatím docela spokojen.