Ask Your Question
4

Řešení pro spamboty

asked 2014-11-15 11:27:47 +0100

Josef Kokeš gravatar image

updated 2014-11-22 16:23:49 +0100

Miro Hrončok gravatar image

(Abych jenom nekecal, že souhlasím, že by se otázky a návrhy k AskFit měly psát do samostatných threadů) Potřebujeme, aspoň výhledově, nějaké řešení pro spamboty. Zatím tu byli jen asi dva, ale podařilo se jim nadělat docela paseku, a při jejím řešení se objevily přinejmenším dva problémy:

1) Kromě adminů zatím není nikdo, kdo by byl schopen spamové otázky rychle zlikvidovat. Běžný uživatel, pokud už má nějakou karmu, je může oflagovat jako "offensive", ale to nezařídí skrytí otázek, jen hlášení adminovi, a navíc každý má jen hodně omezený počet flagů na den. Přinejmenším by to chtělo, že když se sejde 5 flagů u jednoho příspěvku (nebo např. flagy od uživatelů, kteří mají karmu dohromady 500+), tak se příspěvek automaticky skryje všem, dokud o něm admin nerozhodne, a zároveň se příslušným flagujícím uvolní jejich flagy pro další příspěvky.

2) Je třeba myslet na to, že při mazání spamů je třeba něco udělat i s jejich autory. Možná ne přímo smazat, protože to se prostě zaregistrují znovu a my už je nepoznáme, ale přinejmenším jim zakázat psaní dalších otázek a rozhodně nezapomenout na zlikvidování karmy - teď jsme tu měli dva spammery, u kterých jsem teprve teď náhodou zjistil, že mají karmu 100+, tedy víc než mnohý legitimní uživatel, a tato karma jim dává dost velká práva, kdyby například chtěli fórum sabotovat. Ideální, kdyby tohle blokování a odkarmování bylo řešené jedním tlačítkem, aby na to admini nemuseli pořád myslet.

edit retag flag offensive close delete

Comments

Pro moje potřeby už je to uspokojivě vyřešené - teď už mám dost vysokou karmu, abych ty spamy mohl rovnou mazat. Ale líbilo by se mi, kdyby šlo dělat i ty doprovodné akce - zabanovat uživatele, sebrat mu karmu, atd.

Josef Kokeš ( 2014-11-20 21:07:22 +0100 )edit

3 Answers

Sort by » oldest newest most voted
0

answered 2014-11-21 16:11:28 +0100

Na jednom komerčním projektu používám tuto službu: https://mollom.com/

Funguje skvěle, doporučuji adminům vyzkoušet.

edit flag offensive delete publish link more

Comments

problém asi bude integrace do askbota

shejby ( 2014-11-21 21:18:02 +0100 )edit
2

answered 2014-11-21 13:14:57 +0100

Josef Kokeš gravatar image

updated 2014-11-22 08:20:00 +0100

Jako prioritní bude zapnout omezení pro uživatele s nízkou karmou, aby nemohli vkládat odkazy, a už vůbec ne klikatelné odkazy. Za posledních 24 hodin jsem takových smazal nejméně 30, přitom omezení na linky v AskBotu určitě je, protože mě hint nad mojí karmou informuje, že mohu "Insert clickable links" a "Insert link suggestions as plain text" (a proč by mě upozorňoval, kdyby to mohli vždycky všichni). Pro normální pokládání otázek i psaní odpovědí linky potřeba nejsou, takže to postihne téměř výhradně jen spamboty. Normální uživatelé snad nebudou mít problém získat třeba 30 bodů do karmy a získat právo vkládat odkazy.

Případně druhá možnost, snížit požadovanou karmu na mazání dotazů, aby možných čistitelů bylo víc. Až Askfit nějakou dobu poběží a karma nad 150 bude běžná, může se limit zase zvýšit.


Problém je v tom, že Askbot je napsaný docela úchylně a (některá) omezení daná karmou používá pouze na registrované uživatele. Mimo jiné i to omezení na posílání linků. Já tedy Python neumím, ale řekl bych, že by měla stačit drobná úprava v askbot/models/__init__.py - ale bylo by dobré, kdyby si na tom @Miro Hrončok udělal aspoň diff, než to začne dávat do kódu, protože to neumím otestovat.

def user_assert_can_post_text(self, text):
    """Raises exceptions.PermissionDenied, if user does not have
    privilege to post given text, depending on the contents
    """
    if re.search(URL_RE, text):
        min_rep = askbot_settings.MIN_REP_TO_SUGGEST_LINK
        if (self.is_authenticated() and self.reputation < min_rep) or (!self.is_authenticated() and min_rep > 1):
            message = _(
                'Could not post, because your karma is insufficient to publish links'
            )
            raise django_exceptions.PermissionDenied(message)

(Přidal jsem podmínku or do druhého ifu.)

edit flag offensive delete publish link more

Comments

Nově jsem nastavil: Insert clickable links = 10 ; Insert link suggestions as plain text = 5; uvidíme. + Jsem z vás udělal admina, po dohodě s Mirem. Nestíháme, úplně všechno a Vy jste, co se aktivity (je to vidět i na karmě) pro askfit největším přínosem.

shejby ( 2014-11-21 21:17:27 +0100 )edit

No, nevím, jestli jsem chtěl přímo administrátora, ale díky za důvěru.

Josef Kokeš ( 2014-11-22 07:53:31 +0100 )edit

Však nepřihlášený uživatel nemůže posílat post vůbec, ne?

Miro Hrončok ( 2014-11-22 13:55:27 +0100 )edit

Těžko říct. Ale 1) máme tu otázky od anynomů, a, 2) každou chvíli mažu spam, u kterého je uveden autor s karmou 1 a v obsahu link, takže nastavení minimální požadované karmy na linky zjevně nestačí. Chyby můžou být všude možně, ale pro začátek jsem chtěl zkusit možnost, že se sice podmínka na re.search splní, ale podmínka na reputaci ne. Někde jsem v kódu viděl poznámku (během té asi minuty, co jsem to zkoumal), kterou jsem si vyvodil tak, že je možné poslat komentář anonymně a později se k němu přihlásit, tak jsem chtěl ošetřit možnost anonymního postování linků. (Ale jak už jsem napsal, Python neznám a neumím si v něm napsaný web spustit, takže jsem to nezkoumal moc důkladně.)

Josef Kokeš ( 2014-11-22 14:03:14 +0100 )edit

Pokusil jsem se psolat anonymní otázku s linkem jako nový uživatel a nepustilo mě to. Could not post, because your karma is insufficient to publish links.

Miro Hrončok ( 2014-11-22 14:10:13 +0100 )edit
0

answered 2014-11-15 13:17:42 +0100

shejby gravatar image

Spamy jsme řešili přes Akismet bohužel to a) nemělo žádnou možnost dalšího nastavení b) mělo to hodně false positives (některým lidem nešlo vkládat odpovědi, ani otázky). Takže jsme byli nuceni to vypnout.

Nebráním se přidat další aktivní důvěryhodné lidi jako adminy/moderátory/přidat určitá práva (dohodnu se s @Miro Hrončok )

Je tu problém, že se vytváří plno spamerských účtů a na to nepomůže tlačítko odkarmovat/ani zabanovat ...prostě ideální by bylo to asi víc uzavřít na e-maily ...teď tuším se člověk může registrovat i bez validního e-mailu.

edit flag offensive delete publish link more

Comments

Aspoň to tradiční poslání aktivačního kódu mailem by se hodilo. Ono je to dobré i z jiných důvodů - mě třeba neustále chodí nabídky spousty obchodů, které dovolí registraci bez ověření mailu, takže když někdo napíše svůj mail blbě (i neúmyslně), tak to obchod vezme za bernou minci...

Josef Kokeš ( 2014-11-15 14:03:23 +0100 )edit

Pokud jde o množství falešných účtů, osobně to na svém fóru řeším tak, že jednou za občas všechny účty starší než X dní, od kterých není žádný příspěvek a které nemají za posledních X dní ani žádnou návštěvu, prostě smažu. Asi to čas od času odnese i nějaký legitimní uživatel, ale je jich minimum (a dále to minimalizuji tím, že plně automaticky mažu jenom profláklé spamovací maily, jako je [email protected] nebo *.ru, ostatní si před smazáním prohlédnu a když vypadají aspoň trochu lidsky, tak je nechám).

Josef Kokeš ( 2014-11-15 14:33:08 +0100 )edit
2

A nebylo by možné omezit emaily na @fit.cvut.cz ? Ten mají přece všichni :-)

pohlondrej ( 2014-11-15 18:53:23 +0100 )edit

Omezení mailů Všichni ho nemají. Většina asi jo, pak se taky můžeme bavit o nasazení Shibboleth

Aktivační kód To je dobrý nápad.

Obecně je jakákoli změna askbota náročná ... já za sebe neumím python. Ale i Miro kterej ho umí se do toho asi nechce pouštět, protože je to Open Source projekt, který není nejmenší. A navíc na vývoj nemám čas ani já a dost pravděpodobně ani @Miro Hrončok

shejby ( 2014-11-15 19:42:56 +0100 )edit
1

Omezení na @fit.cvut.cz má smysl jenom pro první aktivaci, potom je vhodné dovolit změnu (už jenom proto, že nikdo nevíme, jestli ta adresa vydrží navždy, zvlášť u učitelských aliasů). V tomto ohledu by skutečně mělo smysl udělat aktivaci ne mailem, ale Shibbolethem (prostě se jednou přihlásím fakultním loginem a tím je účet aktivován, bez ohledu na to, jakou mailovou adresu jsem vyplnil).

Josef Kokeš ( 2014-11-16 09:16:37 +0100 )edit

Your answer

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

Add answer

[hide preview]

Question tools

Follow
1 follower

Stats

Asked: 2014-11-15 11:27:47 +0100

Seen: 469 times

Last updated: Nov 22 '14