Nėra dabar tokio rimtesnio tinklapio, kuris nebendrautų su vartotojais per įvairias komentarų, kontaktų formas. Šiomis formomis mėgsta piktnaudžiauti automatizuoti brukalo (spam) brukėjai. :) Standartinių sprendimų netrūksta, štai nesenai radau straipsnį su keletu išvardintų būdų.
Tingintiems skaityti, ten yra keturi sprendimai brukalo problemai:
Tačiau šie sprendimai turi savo minusus. Laiko ribojimą galima apeiti sukūrus gudresnį spam'o robotą, kuris spam'ą siunčia ne taip dažnai (tai yra pakankamai lengva). Kiti du sprendimai - papildomos problemos tinklapio vartotojams. Juodasis sąrašas nežino nieko apie kontekstą, kuriame rašomas komentaras, todėl kartais gali pašalinti ir gerus komentarus. CAPTCHA - papildomas žingsnis vartotojui, kuris su komentaro rašymu visiškai nesusijęs. (Argi kavinėje prieš norėdami parašyti į skundų/padėkų knygą prieš tai sprendžiate matematinį galvosukį, kad jums duotų tą knygą? :)
Akismet - asmeniniams tinklapiams geriausias variantas, tačiau norėdami jį naudoti įmonės tinklalapyje tikriausiai jums tektų periodiškai susimokėti už Akismet teikiamą paslaugą. (Sakau "tikriausiai", nes nesu tikras dėl licenzijos sąlygų - gali būti, kad jei tinklapyje nerodote reklamos ir jis nėra jūsų pajamų šaltinis - moketi nereikės).
Ką daryti jei nenorime "nervinti" vartotojo nereikalingais įvedimo laukais arba Akismet kainuoja per brangiai. Čia skambant fanfaroms į sceną ateina minėtasis "pamirštas būdas kovoti su brukalu".
Iškarto atsiprašau skaitytojų - žemiau esanti informacija bus pakankamai techniška, todėl kai ko galite ir nesuprasti.
Keliuose paskutiniuose projektuose, prie kurių kūrimo teko prisidėti, reikėjo greito ir paprasto sprendimo, kaip atsikratyti automatizuotai siunčiamų komentarų su šlamštu (kuriuos siunčia spam-bot'ai). Nei vienas iš aukščiau paminėtųjų variantų netiko. Faktas - jei visi formos input laukai neturi name atributo, tai iš formos perduodamų duomenų masyvas visada bus tuščias. Pasakius trumpai, komentarų atveju, galime įrašyti formos laukuose bet ką ir spausti mygtuką "Siųsti", niekas neišsisaugos, nes tiesiog nebus perduoti jokie duomenys.
Ši dalis man labiausiai patinka. :) Padariau prielaidą, kad didžioji dalis spamo robotų negali interpretuoti JavaScript kalbos kodo puslapyje, o tuo tarpu tinklalapio vartotojo naršyklė - gali. Todėl input lauke naudojame id atributą, o JavaScript kalbos pagalba nustatome name pagal id.
Žinoma, šis sprendimas nėra kažkas, už ką reikėtų man duoti Nobelio premiją :) tačiau kolkas jis mano žiniomis pasiteisino. Taip, jis turi trūkumų, jį galima nugalėti, tačiau jei reikia sprendimo kuris netrukdytų tinklalapio vartotojui, būtų lengvai ir greitai įgyvendinamas su minimaliais kaštais... manau šis sprendimas yra toks.
Post Scriptum: kaip pastebėjote šis straipsnis labiau techninis, nei kiti iki šiol parašytieji. Nesuprantantys, ką aš čia prirašiau (potencialūs projektų vadovai?), nenusiminkite, nebūsiu tas, kuris viską visada rašys sausai ir techniškai, galite iš manęs tikėtis ir įdomių pasakojimų apie nutikimus ofise. :)
Kolkas tiek, laukiu Jūsų nuomonių! |