Autor Zpráva
Michal Sebek
Profil
Jak zamezím spamování v chstu na svých stránkách?
Odkaz na stránky

Uživatelské jméno: pokus
Heslo: pokus

P.S.: Spamové zprávy jsem smazal
jefitto44
Profil
Hádam len nechceš ku každej správe captchu...
Michal Sebek
Profil
jefitto44:
To nechci. Není nějaký jiný způsob?
jefitto44
Profil
Ako inak si myslíš, že by program dokázal rozlíšiť, či ide o spam, alebo nie? Spamové odkazy väčšinou majú iks odkazov... takže možeš spraviť podmienku, že ak daný string obsahuje viac ako tri odkazy, tak ho nepostne
Joker
Profil
Michal Sebek:
A co je „spam“? Jak se pozná spam od normální zprávy?
Michal Sebek
Profil
Joker:
Na mym chatu spamujou lidi tak, že posílají hodně zpráv za krátký čas


Teď posílají dlouhé zprávy
Joker
Profil
Michal Sebek:
Na mym chatu spamujou lidi tak, že posílají hodně zpráv za krátký čas

Tak by šlo nastavit nějaký maximální počet zpráv odeslaný jedním uživatelem (nebo z jedné IP) za určitý čas.

Teď posílají dlouhé zprávy

Tak by šlo nastavit (resp. snížit) maximální délku zprávy.
Michal Sebek
Profil
Joker:
Tak by šlo nastavit nějaký maximální počet zpráv odeslaný jedním uživatelem (nebo z jedné IP) za určitý čas.
Jak to nastavím?
Joker
Profil
Michal Sebek:
Asi nejtriviálnější varianta je zjistit, kdy ten uživatel odeslal zprávu naposledy, a dovolit mu poslat další až po nějaké době.
Výhodou je velmi jednoduchá implementace.
Ale může to zbytečně otravovat i ty, kdo odešlou zprávu a vzápětí budou chtít poslat ještě další krátkou zprávu, nebo omylem pošlou neúplnou zprávu a pak budou chtít poslat ten zbytek.
Kdyby ta kontrola byla dělaná na IP a na serveru bylo více uživatelů se stejnou IP, bude jim komplikovat život.

Jiná snadno implementovatelná ochrana je neumožnit odeslat příspěvek se stejným obsahem, jaký měl uživatelův minulý příspěvek.

Dále by šlo omezit počet zpráv odeslaných za sebou, tj. uživatel by nemohl odeslat další zprávu, pokud například poslední tři zprávy v chatu jsou taky od něj. To by mělo být taky snadné, ale jednak to bude chtít kombinovat s nějakým časovým omezením (uživatel by nemohl poslat zprávu jen proto, že včera poslal dvě za sebou a od té doby nikdo nic nenapsal) a jednak s dalšími opatřeními, protože spammer pořád může poslat n zpráv po každé zprávě odeslané někým jiným. Ale alespoň mu to zabrání odesílat třeba desítky zpráv za sebou.

Sofistikovanější metoda by bylo nastavit nějaký plovoucí limit, např. povolit odeslat maximálně 5 zpráv během 15 sekund. Nebo např. automaticky odpojit uživatele, který odešle 10 zpráv v průběhu 30 sekund.

Co se týká obsahu zpráv, bývá docela účinná stará dobrá technika zakázaných slov.
Michal Sebek
Profil
Joker:
Sofistikovanější metoda by bylo nastavit nějaký plovoucí limit, např. povolit odeslat maximálně 5 zpráv během 15 sekund
Jak by pak vypadal kód?
Joker
Profil
Michal Sebek:

Tak to je docela jednoduché, když od je teď - 15 sekund (nebo nějaký vhodný limit) a uživatel je přihlášený uživatel:
Jestliže (počet zpráv, kde autor = uživatel a zároveň čas odeslání > od) > 5, nepovol odeslání zprávy.

Konkrétní kód záleží na tom, jak je to konkrétně udělané.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: