anti weblog spam

Pagina: 1
Acties:
  • 135 views sinds 30-01-2008
  • Reageer

  • PuntPunter
  • Registratie: Maart 2002
  • Laatst online: 08-12-2021
Voor iemand begint:
Ik heb gezocht op gastenboek+spam+javascript en zag de onderstaande 'oplossing' er niet bij staan..
Nu heb ik natuurlijk ook niet alle pagina's doorgespit, dus als het al wel ergens geschreven stond, sorry.

Zou het mogelijk zijn om een commentaar formulier te verstoppen, en een extra formulier met javascript toe te voegen, met andere veld namen?
Ik bedoel het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form action="save_comment.php" method="post" id="comment_form">
  <input type="text" id="naam" name="naam" />
  <textarea id="comment" name="comment"></textarea>
</form>
<script type="text/javascript">
<!--
  document.getElementById('comment_form').style.display = 'none';
  oForm = document.createElement('FORM');
  oForm.setAttribute('action','save_comment.php');
  oFormInput = document.createElement('INPUT');
  oFormInput.setAttribute('ID','dyn_name');
  oFormInput.setAttribute('name','dyn_name');
  oForm.appendChild(oFormInput;
  etc.
-->
</script>


Ik besef dat bovenstaande alleen werkt als de client javascript heeft aanstaan, maar in de PHP zou je daarnaar kunnen checken (is naam of dyn_naam gevuld?)

Zitten er hier nog meer nadelen aan (besides dus oude versie javascript, of cross-browser gedoe, dat kan altijd opgelost worden..., het gaat nu alleen om het idee zelf..)

Vooral negatieve reacties zijn welkom, dan kan ik daarover nadenken.. ;)

  • Juup
  • Registratie: Februari 2000
  • Niet online
Dat kan makkelijker. Je hoeft in je javascript alleen maar 1 extra input type="hidden" aan je bestaande form toe te voegen en dan heb je hetzelfde bereikt als nu (namelijk dat bots die js waarschijnlijk niet zien).

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • FragFrog
  • Registratie: September 2001
  • Laatst online: 17:14
Helaas, niet waar.

Ik gebruik zelf deze techniek om spam te weren van FrogBlog (zie sig), maar er zijn nog steeds bots die er doorheen komen af en toe.

Sterker nog, ik heb daarnaast al een hidden cookie en sessie gebruikt die nodig is maar ook die wordt netjes mee verzonden door de spammers... Of iemand zit me te jennen en handmatig in te vullen, of spambots zijn echt -heel- erg goed aan het worden :|

[ Site ] [ twitch ] [ jijbuis ]


  • Sappie
  • Registratie: September 2000
  • Laatst online: 18-11 20:27

Sappie

De Parasitaire Capaciteit!

Tis de vraag of de gebruikers van je weblog er vrolijk van worden, maar je kan uiteraard ook gebruik maken van een simpele image verificator (captcha). Dan ben je meteen van het gezeik af :)

Specs | Audioscrobbler


Verwijderd

Ik heb nog steeds het idee, dat er daadwerkelijk mensen handmatig spam zitten te versturen op dat soort Blogs, het is bewezen dat er behoorlijk wat leads gegenereerd worden op spam en het verhogen van eventuele pagerankings heeft natuurlijk ook waarde... er schijnt namelijk ook structureel door bedrijven mensen ingehuurd te worden die recensies voorzien van positief commentaar, of op verkapte wijze anderszins reclame maken!

Kijk, het klinkt hard, maar het is echt niet moeilijk om in een of ander lage-lonen land, voor 2 dollar per dag een kind (eventueel) op diverse willekeurige blog-site met een er toe doend bezoekersaantal commentaar te laten posten! Ik weet niet zeker of het een business case is... maar ik geloof er best wel in!

Ik ben dus alleen bang, dat je in deze gevallen NIETS maar dan ook NIETS kan doen om dit te voorkomen, behalve stelselmatig IP-adressen gaan lopen blocken waarbij natuurlijk niet vast staat dat ze voor dit doel statische gebruiken!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 17:14
captcha is een optie om bots in ieder geval te weren, maar niet erg gebruiksvriendelijk. Zelf zit ik er aan te denken een gebruikers-registratie systeem te maken, waarbij mensen eenmalig een gebruikersnaam en wachtwoord moeten kiezen om mee in te loggen. Kleine eenmalige moeite, denk dat veel bezoekers van blogs er niet zoveel problemen mee zullen hebben :) Valt ook te combineren trouwens, captcha en optioneel registreren om die captcha niet meer nodig te hebben.

Daarnaast registreert FrogBlog al IP adressen van alle comments, het is mogelijk die te vergelijken met IP blacklists zoals wel circuleren over het net. Helaas tref je daar ook mensen mee die via proxy's browsen ed.

Het blijft -altijd- een afweging tussen gebruikersgemak en veiligheid. Je kan je blog zo dichttimmeren dat er geen enkele spammer meer doorheen komt, maar met als gevolg dat bijna niemand meer post. Je kan ook niks doen en elke ochtend eerst de tientallen spam berichten van de vorige nacht verwijderen. Of je zoekt een middenweg en verwijdert de enkele comment die er door komt :) Voor FrogBlog heb ik voor dat laatste gekozen, voor een site die gebouwd is met IE4 users in het achterhoofd heb ik gekozen voor een captcha image, en voor een CMS met blog-functie heb ik gekozen voor een compleet registratie systeem met handmatige toevoeging van gebruikers. Kies de optie die het beste bij je site past zeg ik altijd :)

[ Site ] [ twitch ] [ jijbuis ]


  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

FragFrog schreef op maandag 20 november 2006 @ 12:35:
captcha is een optie om bots in ieder geval te weren, maar niet erg gebruiksvriendelijk. Zelf zit ik er aan te denken een gebruikers-registratie systeem te maken, waarbij mensen eenmalig een gebruikersnaam en wachtwoord moeten kiezen om mee in te loggen.
Ik draai een CMS, postnuke, en daar heb ik gekozen voor de optie: wachtwoord wordt per mail verzonden. Het is natuurlijk wel zo des te groter het gebruik van een OpenSource pakket wordt, des te interresanter is het om er spambots voor te scripten. Maar er zijn al zat spambots die gewoon registreren. IP's bijhouden is ook iets wat niet echt een optie is, aangezien een spammer natuurlijk via proxies werkt. Althans, zou ik wel doen. Misschien een optie om een proxy-check te doen. Kijken of er op het IP een open proxie draait, en op basis daarvan niets toestaan.

De optie met javascript kan ook wel prima werken. Een code die niet in de HTML zichtbaar is aan het form plakken. (misschien een slecht voorbeeld, maar de reacties op fok bijvoorbeeld worden volledig in javascript op het scherm gezet). Er is een groot verschil tussen javascript in de HTML zelf, of een script wat uit een ander bestand komt.

code:
1
<script>document.write('<input type=hidden name=blahblah');</script>

Als je dit in je HTM zet, is het natuurlijk alsnog te lezen door spamscripts/bots

Een andere optie is om bepaalde useragents te blokken. pear en perl zijn veel voorkomende spam-scripts.

De anti-spam plugin van wordpress, aksimet, schijnt wel aardig te werken. Aangezien spam altijd wel links bevatten zou je ook gewoon kunnen checken op content voor je het wegschijft. gewoon geen links accepteren.

[ Voor 8% gewijzigd door RaZ op 20-11-2006 12:49 ]

Ey!! Macarena \o/


Verwijderd

@FragFrog, registreren is ook niet echt "moeilijk" voor dat type bots. Kijk maar eens hoe sommige PHPBB's volledig worden volgespamd!

@RaZ, Aksimet is inderdaad een erg mooie oplossing! Eenvoudig te gebruiken dmv een vrij verkrijgbare PHP class.

[ Voor 30% gewijzigd door Verwijderd op 20-11-2006 12:55 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 28-11 08:35

curry684

left part of the evil twins

Ik heb op Xboxic een volledig custom challenge/response timer mechanisme in de anonymous comments geimplementeerd toen er op een gegeven moment echt dagelijks 200+ spamcomments gepoogd werden. Kijk maar eens hoe ik dat gedaan heb, compleet zonder Javascript, en het reduceert de dagelijkse spam tot atm een stuk of 3 tot 5 die vervolgens allemaal op keywords of link overkill in de modqueue terecht komen :)

Een goede secundaire bescherming bestaat ook uit het weren van comments van IP's die in DNSBL's staan (wat bijv. Wordpress ook native kan).

Het probleem met de spammers is dat ze vriendjes met elkaar zijn. Ze bezoeken sites met commentgelegenheden, en noteren naar welke URL er gePOST moet worden en met welke variabelen om spam gedropt te krijgen. De enige manier (imo) om dat structureel te voorkomen is om ervoor te zorgen dat je ieder commentform maar een beperkte tijd geldig is (bij mij 2 uur). Ze moeten dus realtime crawlen om een op dit moment geldige commentform te krijgen, wat veel te veel overhead kost voor de feitelijke baten. Spammers weren is vaak een simpele kwestie van zorgen dat het hun teveel bandwidth of CPU-tijd kost om automated te doen.

Professionele website nodig?


  • FragFrog
  • Registratie: September 2001
  • Laatst online: 17:14
RaZ schreef op maandag 20 november 2006 @ 12:46:
Ik draai een CMS, postnuke, en daar heb ik gekozen voor de optie: wachtwoord wordt per mail verzonden. Het is natuurlijk wel zo des te groter het gebruik van een OpenSource pakket wordt, des te interresanter is het om er spambots voor te scripten. Maar er zijn al zat spambots die gewoon registreren.
Mmmm, e-mail activatie heb ik zelf een hekel aan, ben benieuwd hoeveel spambots daadwerkelijk registreren en dan gaan spammen. Zal toch niet al te veel zijn? :)
IP's bijhouden is ook iets wat niet echt een optie is, aangezien een spammer natuurlijk via proxies werkt. Althans, zou ik wel doen. Misschien een optie om een proxy-check te doen. Kijken of er op het IP een open proxie draait, en op basis daarvan niets toestaan.
Tja, maar daarmee tref je ook mensen die een strak internet-regime op werk/school hebben. Zeker niet gebruiksvriendelijk :) En je kan toch nooit alle proxy-servers vinden, plus wie zegt dat er altijd een proxy gebruikt wordt? Of dat het een open-relay is? Al met al niet echt een optie denk ik :)
De optie met javascript kan ook wel prima werken. Een code die niet in de HTML zichtbaar is aan het form plakken. (misschien een slecht voorbeeld, maar de reacties op fok bijvoorbeeld worden volledig in javascript op het scherm gezet). Er is een groot verschil tussen javascript in de HTML zelf, of een script wat uit een ander bestand komt.
Mmm, daar heb je misschien een punt :) Heb nu de essentiele javascript geinclude ipv in de template staan, benieuwd hoeveel dat tegen gaat houden. Then again, -zo- moeilijk is het ook niet om je bot links naar externe documenten te laten volgen, links volgen is tenslotte zo ongeveer wat een spambot doet, dus waterdicht is ook deze methode vast niet...
De anti-spam plugin van wordpress, aksimet, schijnt wel aardig te werken. Aangezien spam altijd wel links bevatten zou je ook gewoon kunnen checken op content voor je het wegschijft. gewoon geen links accepteren.
Had ik ookal aan gedacht, maar wat nu als een gewone gebruiker een relevante link bij een blog wil plaatsen? Wederom, te ongebruiksvriendelijk voor mijn smaak. Wat wellicht wel een optie is is om het aantal links te tellen - spambots plaatsen in mijn ervaring vaak een hele rits links, in diverse opmaken ook, een comment weigeren bij meer dan 5 urls bijvoorbeeld zal niet zo'n probleem zijn voor gewone gebruikers maar wel aardig wat spambots tegenhouden gok ik :)

//edit @ Curry:
Commentforms dynamisch genereren met unieke keys klinkt idd ook wel als een goed plan :) Heb al iets in die richting gedaan door de inputvelden een maffe naam te geven, ze helemaal random maken is ook niet zo lastig. Validation keys heb ik zoals gezegd als eens ingevoerd dmv een cookie wat een random hash meegeeft, maar desondanks kwam er nog steeds spam... Maargoed, wat jij zegt, 't zal niet 100% waterdicht zijn maar als je het gros er maar uit filtert ben je al een eind in de goede richting :)

[ Voor 9% gewijzigd door FragFrog op 20-11-2006 13:09 ]

[ Site ] [ twitch ] [ jijbuis ]


Verwijderd

Als Wordpress gebruiker maak ik gebruik van de Akismet plugin die standaard bij Wordpress zit (moet enkel nog door de gebruiker geactiveerd worden) en deze doet zeer degelijk werk zonder de gebruiker te moeten enerveren met allerlei vreemde postmechanismen. Af en toe komt er nog wel eens een spamcomment door, maar dan kies je gewoon voor "mark as spam" en dan weet je dat je weeral je steentje hebt bijgedragen aan de wereldwijde antispam service :)

  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 30-11 19:23
Wat misschien ook een idee is (ik heb het nog niet geprobeerd), is met behulp van CSS een veld toevoegen die niet zichtbaar is. ( z-index op -1 zetten bijvoorbeeld, of visibility hidden ), maar een logische naam heeft.
Vervolgens het zichtbare veld een onlogische naam geven.
Gebruikers zien de namen van de velden niet, en alleen het veld dat ingevuld moet worden. Bots zullen (ook) het 'verborgen' veld invullen.
Vervolgens op de verwerkende pagina kijken of het verborgen veld is ingevuld. Als dat zo is, gaat het om een botje, en kun je de reactie weggooien (en het IP blokkeren)

Bezoek eens een willekeurige pagina


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 28-11 08:35

curry684

left part of the evil twins

FragFrog schreef op maandag 20 november 2006 @ 13:03:
[...]
Mmmm, e-mail activatie heb ik zelf een hekel aan, ben benieuwd hoeveel spambots daadwerkelijk registreren en dan gaan spammen. Zal toch niet al te veel zijn? :)
Bij relatief grote sites als Joystiq werkt het probleemloos, en het heeft niets met registratie van doen. Je post je comment en krijgt vervolgens een mailtje op je opgegeven adres om de comment te activeren.

Dat is het model waar ik heen ga als de spammers er ooit in slagen om structureel om mijn custom oplossing heen te werken, maar dat verwacht ik persoonlijk niet :)
Tja, maar daarmee tref je ook mensen die een strak internet-regime op werk/school hebben. Zeker niet gebruiksvriendelijk :) En je kan toch nooit alle proxy-servers vinden, plus wie zegt dat er altijd een proxy gebruikt wordt? Of dat het een open-relay is? Al met al niet echt een optie denk ik :)
Daar heb je dus DNSBL's voor: die registreren open en abused proxies en known spam relays zodat mail- en webservers er vervolgens troep op uit kunnen filteren.

Mijn mailserver knikkert per dag regelmatig meer dan 1000 incoming spammails puur weg op DNSBL-matches (!!!!).
Had ik ookal aan gedacht, maar wat nu als een gewone gebruiker een relevante link bij een blog wil plaatsen? Wederom, te ongebruiksvriendelijk voor mijn smaak. Wat wellicht wel een optie is is om het aantal links te tellen - spambots plaatsen in mijn ervaring vaak een hele rits links, in diverse opmaken ook, een comment weigeren bij meer dan 5 urls bijvoorbeeld zal niet zo'n probleem zijn voor gewone gebruikers maar wel aardig wat spambots tegenhouden gok ik :)
Bij mij gaat alles met 2 of meer links automatisch in de modqueue. 1 linkje kan dus gewoon, en zonder poespas.

@EdwinG: er lopen bijna geen bots rond die zo stom zijn als jij denkt ;) Spammers gebruiken normaliter gewoon handmatig verzamelde "standaardlijsten" van welke velden er naar welke URL gePOST moeten worden.

[ Voor 5% gewijzigd door curry684 op 20-11-2006 13:09 ]

Professionele website nodig?


  • PuntPunter
  • Registratie: Maart 2002
  • Laatst online: 08-12-2021
Bedankt voor de reacties tot nog toe.

De optie van Askimet heb ik al draaien. Werkt inderdaad goed, alleen vangt deze af en toe te veel weg.

De hidden input zou inderdaad makkelijker zijn, maar het punt is juist dat voor een bot er dan nog steeds maar 1 input veld voor naam en text is...

Externe javascripts zijn logish (in XHTML strict iig). Hoewel, zoals ik begrepen heb, ook dat soms fout gaat, als spam bots iexplorer gebruiken om de pagina te renderen.

Mijn idee, om het iets duidelijker te maken, is dat de bot twee forms ziet, en automatisch de bovenste pakt (de originele, de eerste in de mark-up, en de enige met 'naam / name' als invoerveld.)
Zou (voor een bot) misschien logisher zijn om die form te pakken, ipv het andere.

Handmatige invoer blijft dan natuurlijk een probleem, maar dat kun je dan inderdaad weer afvangen dmv. bijvoorbeeld Askimet. Minder kans dat Askimet de verkeerde dingen afvangt...

-edit-
Man, in de tijd die ik gebruik om dit te schrijven zijn er alweer 4 posts bij...

Goed, de 'activeer door e-mail optie' wil ik liever niet. Ik wil niet dagelijks mail moeten checken, kijken of er een nieuw comment is geplaatst.
Ook per e-mail bevestigen dat 'je echt bent' is niet echt een optie voor mij. Op zich niets op tegen trouwens, maar dat werkt in dit geval niet (anonymous posten moet mogelijk blijven)

[ Voor 18% gewijzigd door PuntPunter op 20-11-2006 13:15 ]


  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 30-11 19:23
curry684 schreef op maandag 20 november 2006 @ 13:08:
@EdwinG: er lopen bijna geen bots rond die zo stom zijn als jij denkt ;) Spammers gebruiken normaliter gewoon handmatig verzamelde "standaardlijsten" van welke velden er naar welke URL gePOST moeten worden.
Dat kan, zoals ik zei heb ik het nog niet geprobeerd. :)
Misschien zal het idee meer succes hebben als de namen van de velden regelmatig veranderen, en dan bijvoorbeeld het verborgen veld de naam geven die het correcte veld daarvoor had. Maar ook dat blijft giswerk.
PuntPunter schreef op maandag 20 november 2006 @ 13:11:
Mijn idee, om het iets duidelijker te maken, is dat de bot twee forms ziet, en automatisch de bovenste pakt (de originele, de eerste in de mark-up, en de enige met 'naam / name' als invoerveld.)
Zou (voor een bot) misschien logisher zijn om die form te pakken, ipv het andere.
Als je op mijn idee doelt: Ik dacht meer aan 1 formulier, met meerdere velden.
De velden 'name' en 'message' zijn dan verborgen voor de gebruiker.
Maar 'xxhqx' en 'bbyxq' zijn zichtbaar. Een spambot zou dan (tenminste, dat hoopte ik), alle velden invullen, of in ieder geval 'message'.
Zodrag 'message' of 'name' is ingevuld weet je dat het geen normale gebruiker is.

[ Voor 39% gewijzigd door EdwinG op 20-11-2006 13:17 . Reden: Toevoeging quote puntpunter ]

Bezoek eens een willekeurige pagina


  • FragFrog
  • Registratie: September 2001
  • Laatst online: 17:14
curry684 schreef op maandag 20 november 2006 @ 13:08:
Bij relatief grote sites als Joystiq werkt het probleemloos, en het heeft niets met registratie van doen. Je post je comment en krijgt vervolgens een mailtje op je opgegeven adres om de comment te activeren.

Dat is het model waar ik heen ga als de spammers er ooit in slagen om structureel om mijn custom oplossing heen te werken, maar dat verwacht ik persoonlijk niet :)
Tja, ik heb zelf gewoon echt een hekel aan iets doen en vervolgens moeten wachten op een email, daarin weer op een link klikken en dan pas verder kunnen. Email registratie is IMHO een handigere optie, op die manier hoeven mensen maar 1 keer door dat proces heen in plaats van bij elke comment. Dat registreren bij phpBB niet meer effectief is kan ik begrijpen, er zijn zo belachelijk veel phpBB fora dat het zwaar loont daar een bot voor te schrijven. Voor een gemiddeld open source projectje zal 't wel meevallen hoop ik... :+
Daar heb je dus DNSBL's voor: die registreren open en abused proxies en known spam relays zodat mail- en webservers er vervolgens troep op uit kunnen filteren.

Mijn mailserver knikkert per dag regelmatig meer dan 1000 incoming spammails puur weg op DNSBL-matches (!!!!).
Tja, wat ik zei, de proxy die je favo spammer gebruikt is wellicht ook de enige die een vriend van je kan gebruiken doordat zijn internet gecontroleerd wordt :) Alle open proxy's weigeren maak je geen vrienden mee - om nog maar te zwijgen over de extra overhead die je ermee genereert :) Voor een gamesite maakt het niet zo veel uit, maar ik hoop stiekem natuurlijk dat FrogBlog redelijk populair gaat worden als't af is en ook gebruikt gaat worden door mensen die wellicht wel reden hebben om volledig anoniem te blijven. Proxy's zijn dan essentieel.
Bij mij gaat alles met 2 of meer links automatisch in de modqueue. 1 linkje kan dus gewoon, en zonder poespas.
Lijkt me een erg mooi, simpel en effectief systeem :) Zal ik zeker ook eens naar kijken :)

[ Voor 6% gewijzigd door FragFrog op 20-11-2006 13:23 ]

[ Site ] [ twitch ] [ jijbuis ]


Verwijderd

De oplossingen die curry684 aandraagt lijkt me erg goed te werken.

Het gebruik van een challenge/response mechanisme weert waarschijnlijk veel posts. Daarnaast kun je natuurlijk nog controleren hoe snel iemand een formulier invult (middels je sessie met challenge/response). Wanneer er bijvoorbeeld een reply binnen 15 seconden gestuurd wordt waarbij het bericht uit meer dan 2.000 karakters bestaat dan is de kans groot dat het bericht van een bot af komt (uitzonderingen daar gelaten - bijvoorbeeld iemand die het bericht al in notepad heeft getypt). Controlleer je daarbij ook nog op het aantal links in een bericht dan moet je de meeste bots volgens mij wel kunnen weren. Andere berichten kunnen inderdaad in een mod-queue geplaatst worden.

[ Voor 0% gewijzigd door Verwijderd op 20-11-2006 14:02 . Reden: Typo... ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 28-11 08:35

curry684

left part of the evil twins

FragFrog schreef op maandag 20 november 2006 @ 13:18:
Tja, wat ik zei, de proxy die je favo spammer gebruikt is wellicht ook de enige die een vriend van je kan gebruiken doordat zijn internet gecontroleerd wordt :) Alle open proxy's weigeren maak je geen vrienden mee - om nog maar te zwijgen over de extra overhead die je ermee genereert :) Voor een gamesite maakt het niet zo veel uit, maar ik hoop stiekem natuurlijk dat FrogBlog redelijk populair gaat worden als't af is en ook gebruikt gaat worden door mensen die wellicht wel reden hebben om volledig anoniem te blijven. Proxy's zijn dan essentieel.
Volgens mij mis je ergens het punt van DNSBL's en het verschil tussen proxies en open proxies ;) Met een proxy is niets mis, met een open proxy is niets goeds.

Ik mis ook ergens de reden waarom privacy/ease-of-use op een gamessite minder zou boeien dan op het grote FrogBlog 8)7

En zoals djingelz bevestigt: m'n challenge/response mechanisme is idioot efficient, hindert geen enkele gebruiker en vereist geen email of Javascript op wat voor manier dan ook.

[ Voor 5% gewijzigd door curry684 op 20-11-2006 13:53 ]

Professionele website nodig?


  • FragFrog
  • Registratie: September 2001
  • Laatst online: 17:14
curry684 schreef op maandag 20 november 2006 @ 13:51:
Ik mis ook ergens de reden waarom privacy/ease-of-use op een gamessite minder zou boeien dan op het grote FrogBlog 8)7
Hoevaak bespreek je politiek gevoelige onderwerpen op een gamesite? ;) In china bijvoorbeeld worden bloggers vervolgd, ik ga een regering niet een plezier doen door software te bouwen die vereist dat een gebruiker altijd te vinden is :) Ik zeg niet dat het niet boeit op een gamesite, maar ik denk toch wel dat't wat minder noodzakelijk is :)

Over open proxy's:
By utilizing some open proxies (the so-called "anonymous" open proxies), users can conceal their true IP address from the accessed service, and this is sometimes used to abuse or interrupt that service, potentially violating its terms of service or the law; open proxies are therefore often seen as a problem. However, anonymous open proxies are also used to increase anonymity or security when browsing the web or using other internet services: a user's true IP address can be used to deduce information about that user and to hack into his or her computer. Furthermore, open proxies can be used to circumvent efforts at Internet censorship by governments or organizations. Several web sites exist which provide constantly updated lists of open proxies[1].
http://en.wikipedia.org/wiki/Open_proxy

[ Voor 42% gewijzigd door FragFrog op 20-11-2006 14:08 ]

[ Site ] [ twitch ] [ jijbuis ]


  • Joshua
  • Registratie: Juli 2005
  • Laatst online: 12-11 13:44
Gewoon zorgen dat er een soort van handigematige activatie komt voor mensen die dagelijks posten op je blog..
gewoon dat als ze 1ste keer bericht posten dat je het goedkeuren met en dan hun ip in combinatie met username op whitelist komt zodat hun daarna onbezorgd verder kunnen posten..

zo zou ik het tenminste doen dan..

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 28-11 08:35

curry684

left part of the evil twins

En dat bedoel ik dus met het verschil tussen proxies en open proxies: anonimizers zoals die in China e.d. gebruikt worden staan niet in open proxy lijsten, want beschermen uit eigenbelang zelf keihard tegen dat er via hun dienst gespamd kan worden :)

Professionele website nodig?


  • FragFrog
  • Registratie: September 2001
  • Laatst online: 17:14
curry684 schreef op maandag 20 november 2006 @ 14:07:
En dat bedoel ik dus met het verschil tussen proxies en open proxies: anonimizers zoals die in China e.d. gebruikt worden staan niet in open proxy lijsten, want beschermen uit eigenbelang zelf keihard tegen dat er via hun dienst gespamd kan worden :)
Tja, wikipedia beweert dat open proxies toch ook wel degelijk voor dat doel gebruikt worden, waar moet je dan van uitgaan? :) Daarnaast is een blacklist (in mijn ervaring althans) nooit waterdicht en maakt het gebruik van bekende lijsten je afhankelijk van anderen. Dan gebruik ik een stuk liever andere opties :)

[ Site ] [ twitch ] [ jijbuis ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 28-11 08:35

curry684

left part of the evil twins

Ga dan gewoon eens die challenge/response implementeren die ik heb voorgesteld ;)

Professionele website nodig?


Verwijderd

Als je open proxies niet wilt weren dan is dat mogelijk maar je loopt dus het risico dat er meer spam binnen komt. Dat is volgens mij een simpele conclusie die je kunt trekken. Het is aan jezelf om hiervoor te kiezen (of niet).

Het gebruik van de overige, door curry684 beschreven, methoden zou volgens mij behoorlijk effectief kunnen werken.

Persoonlijk ben ik niet echt een fan van de javascript oplossingen aangezien veel spambots dit tegenwoordig gewoon kunnen parsen en dus niet echt zinvol is. Maar wat misschien wel interessant is om spambots te weren is het gebruik van een challenge/respnose in combinatie met javascript. Laat de client een mooie response berekenen welke wat rekenwerk (= tijd) kost. Voor een gebruiker is dat niet heel erg (kost geen extra moiete alleen wat meer tijd) maar voor een spambot die duizenden berichten wil posten kan het dus behoorlijk wat tijd kosten :). Het enige nadeel hiervan is dat de gebruiker javascript ingeschakeld moet hebben en een lichte vertraging in verband met de rekentijd.

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
curry684 schreef op maandag 20 november 2006 @ 14:42:
Ga dan gewoon eens die challenge/response implementeren die ik heb voorgesteld ;)
Je genereert dus bij elke hit een nieuwe challenge/response en je ruimt de challenges blijkbaar na 2 uur op. Koppel je ook het IP adres aan de challenge? Ruim je challenges op als een IP/sessie er X open heeft staan?

{signature}


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 28-11 08:35

curry684

left part of the evil twins

Ik sla helemaal niets op :) Ik stuur 2 variabelen naar het invulformulier: een timestamp en een unique identifier. Bijvoorbeeld:
PHP:
1
2
$timestamp = time();
$uniqueid = md5("Mijn unieke string waar niemand iets mee kan!".$timestamp);

Deze 2 waardes stop je in hidden inputs of GET-variabelen. Zodra het form terugkomt kan jij serverside checken of de aangeboden timestamp en uniqueid een geldige combinatie zijn, want uit de timestamp volgt de uniqueid volgens een manier die jij alleen serverside weet. Vervolgens trash je de comment lekker weg als de combinatie niet matcht of als de teruggestuurde timestamp te oud is.

Hierdoor kan een comment alleen gepost worden door iemand die de afgelopen X uur *zelf* die pagina heeft opgevraagd en correct geparsed, wat spambots in beginsel niet doen omdat het teveel kruim kost om continu pagina's op te vragen.

Dus: geen cookies, geen serverside storage, geen javascript. Wel efficient :)

Eventueel kun je 'm nog wat efficienter maken door het IP-adres mee te nemen in de unique ID, maar in de praktijk zal dat niets uitmaken doordat je er enkel mee blokkeert dat de waardes geshared kunnen worden tussen meerdere spammers... en dat doen ze in die extreem korte X uur window toch niet.

edit:
tis overigens geen volledige challenge/response in dat de client niets toevoegt maar enkel met de originele data respond... de truc zit 'm in dat je de tijdswindow volledig safe reduceert en daarmee "intelligente clients" vereist

[ Voor 21% gewijzigd door curry684 op 20-11-2006 15:09 ]

Professionele website nodig?


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
OK, duidelijk. Ik had nog niet opgemerkt dat dat getal een unix timestamp was... O-)

Ik ga dit ook maar eens toepassen. :)
curry684 schreef op maandag 20 november 2006 @ 15:05:
Eventueel kun je 'm nog wat efficienter maken door het IP-adres mee te nemen in de unique ID, maar in de praktijk zal dat niets uitmaken doordat je er enkel mee blokkeert dat de waardes geshared kunnen worden tussen meerdere spammers... en dat doen ze in die extreem korte X uur window toch niet.
Ja, ok. Alhoewel het IP adres meehashen ook niet al te spannend is om te implementeren. :+
edit:
tis overigens geen volledige challenge/response in dat de client niets toevoegt maar enkel met de originele data respond... de truc zit 'm in dat je de tijdswindow volledig safe reduceert en daarmee "intelligente clients" vereist
Nee, ik had al door dat validation de 'response' was. En je had al gezegd dat er geen javascript nodig was. ;)

{signature}


  • FragFrog
  • Registratie: September 2001
  • Laatst online: 17:14
Hmmzja, een dergelijk systeem heb ik dus allang geimplementeerd, maar dan met de additie dat de challenge sha1 van (random getal + IP) in een cookie gestopt wordt -en- als post waarde wordt meegegeven. Ergo, iemand kan alleen posten als'ie eerst de pagina geladen heeft en het cookie opgeslagen heeft. Kwam nog steeds een spammer doorheen :| Nu dus maar teruggegaan naar een systeem van enkel een cookie setten, hetzelfde effect maar minder load.

* FragFrog vermoedt dat er daadwerkelijk mensen Bo-oz' idee gebruiken van web-afstruinende-kindertjes

[ Voor 16% gewijzigd door FragFrog op 20-11-2006 15:20 ]

[ Site ] [ twitch ] [ jijbuis ]


  • bat266
  • Registratie: Februari 2004
  • Laatst online: 25-11 10:53
@FragFrog Is het dan niet zo dat je het niet tijdsgebonden maakt, 1 van de punten die curry684 maakt is er voor te zorgen dat de challange slechts een beperkte levensduur heeft. Zo als je het nu hier neerzet is dat niet inbegrepen in jouw oplossing.

Better to remain silent and be thought a fool then to speak out and remove all doubt.


  • FragFrog
  • Registratie: September 2001
  • Laatst online: 17:14
Effect is hetzelfde bat266, tijdsduur gebonden of random nummer zorgt er beide voor dat je -per se- eerst de pagina moet laden voor je kan posten, iets wat spammers niet doen die gewoon een serie data naar een bepaalde pagina posten :)

Wat wellicht wel gaat werken is om hem wel tijdsgebonden te maken en vervolgens te controleren of er minimaal 10 seconden oid verstreken is tussen pagina-laden en verzenden :)

[ Site ] [ twitch ] [ jijbuis ]


  • bat266
  • Registratie: Februari 2004
  • Laatst online: 25-11 10:53
Als je de challenges maar en beperkte geldigheidsduur geeft wel, maar dat kon ik uit bovenstaande niet vaststellen.
Ga er overigens wel vanuit :)

Better to remain silent and be thought a fool then to speak out and remove all doubt.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 28-11 08:35

curry684

left part of the evil twins

Tijdsgebonden is nu net de hele crux van deze mechaniek, al het andere (cookies, get, post) is repeatable, wat je door de tijd met de hash te locken onmogelijk maakt :)

Professionele website nodig?


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Nee, het is niet hetzelfde. Jij zegt nu dat je serverside dat random nr niet opslaat. Dus het enige dat client hoeft te weten (middels cookie) is dat X=a, Y=b. Maar als X=a, Y=b volgend jaar nog steeds een geldig antwoord is, schiet je er niets mee op. Bots moeten uiteraard wel ooit je pagina laden. Maar Curry zijn beveiliging zit hem er in dat ze die pagina binnen dat window moeten laden.
edit:
spuit 11

{signature}


  • FragFrog
  • Registratie: September 2001
  • Laatst online: 17:14
Het random nummer wordt inderdaad niet serverside opgeslagen, maar zodra de pagina refreshed (wat na een normale POST wel gebeurt) krijg je automatisch een nieuwe cookie waardoor je ook een nieuwe hash moet gebruiken, wat bovendien enkel voor jou IP zal werken zodat het verzenden vanaf meerdere proxy's niet gaat werken. Ik ging er (onterecht?) niet vanuit dat spambots slim genoeg waren om maar 1x een cookie op te slaan en daarna die data te hergebruiken. Heb overigens nog maar een enkele spamcomment gezien nadat ik cookies ging gebruiken, dus ik gok dat't wel degelijk invloed heeft (ook gezien het aantal comments dat geweigerd wordt).

Als je enkel tijd + random woord gebruikt is'ie welliswaar beperkter geldig, maar kun je nog steeds dezelfde data overnieuw verzenden binnen dat tijdsbestek en zelfs doorgeven aan anderen. Sterker nog, je kan door de source te bekijken eenvoudig genoeg een script maken wat dezelfde hash berekent waardoor die methode op den duur ook onbruikbaar wordt. Voor closedsource werkt dat, voor open source niet - of niet lang in ieder geval. Mocht mijn oplossing echt niet efficient genoeg blijken op den duur (een enkele spamcomment zoals tot nu toe gepost wordt vind ik niet zo erg :)) kan ik altijd nog overgaan op een systeem van opgeslagen hashes met een beperkte levensduur...

[ Site ] [ twitch ] [ jijbuis ]


Verwijderd

Als je aan een challenge een tijd + ip + random woord toevoegt, heeft deze challenge een beperkte duur vanaf een bepaald ip-adres. Het is inderdaad mogelijk om deze challenge meerdere keren te gebruiken binnen het tijdsframe met hetzelfde ip-adres. Dit kan echter ook voorkomen worden door alle challenges die worden gebruikt tijdelijk (zolang ze gelden) op te slaan en ze te verwijderen zodra het tijdsframe voorbij is. Het is dan alleen nog mogelijk om één keer een bericht te plaatsen met de betreffende challenge.

  • bat266
  • Registratie: Februari 2004
  • Laatst online: 25-11 10:53
Het idee was dat spammers niet crawlen en dan direct gaan posten, maar dat de crawlers en postscripts elkaar niet binnen het tijdsframe dat ingesteld is opvolgen. Er zullen vast wel enkele zijn die dat doen, maar dat aantal is zoals curry zei te verwaarlozen. En dan is het voor de spammers minder rendabel.

[ Voor 8% gewijzigd door bat266 op 20-11-2006 16:14 ]

Better to remain silent and be thought a fool then to speak out and remove all doubt.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 28-11 08:35

curry684

left part of the evil twins

FragFrog schreef op maandag 20 november 2006 @ 15:57:
Ik ging er (onterecht?) niet vanuit dat spambots slim genoeg waren om maar 1x een cookie op te slaan en daarna die data te hergebruiken.
Onterecht ja :)
Heb overigens nog maar een enkele spamcomment gezien nadat ik cookies ging gebruiken, dus ik gok dat't wel degelijk invloed heeft (ook gezien het aantal comments dat geweigerd wordt).
Tuurlijk, iedere maatregel is tot op zekere hoogte effectief tegen de "brute force" spammers die gewoon zo snel mogelijk zoveel mogelijk willen spreaden.
Als je enkel tijd + random woord gebruikt is'ie welliswaar beperkter geldig, maar kun je nog steeds dezelfde data overnieuw verzenden binnen dat tijdsbestek en zelfs doorgeven aan anderen.
Daarom hanteer ik een window van 2 uur. Binnen 2 uur spreaden na een manual pickup maakt het erg onwaarschijnlijk.
Sterker nog, je kan door de source te bekijken eenvoudig genoeg een script maken wat dezelfde hash berekent waardoor die methode op den duur ook onbruikbaar wordt. Voor closedsource werkt dat, voor open source niet - of niet lang in ieder geval.
Bliep? :? Mocht je code feitelijk willen verspreiden die van deze tactiek gebruik maakt ga je toch hopelijk van die "private key" een serverside configsetting maken.

Professionele website nodig?


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
FragFrog schreef op maandag 20 november 2006 @ 15:57:
Sterker nog, je kan door de source te bekijken eenvoudig genoeg een script maken wat dezelfde hash berekent waardoor die methode op den duur ook onbruikbaar wordt. Voor closedsource werkt dat, voor open source niet - of niet lang in ieder geval.
In die laatste zin kan je het beter over serverside vs clientside hebben. ;) Met een open source server script waarbij je gewoon een configuratiesetting voor de salt / magic string hebt zit je ook gewoon goed. :)
Verwijderd schreef op maandag 20 november 2006 @ 16:07:
Als je aan een challenge een tijd + ip + random woord toevoegt, heeft deze challenge een beperkte duur vanaf een bepaald ip-adres. Het is inderdaad mogelijk om deze challenge meerdere keren te gebruiken binnen het tijdsframe met hetzelfde ip-adres. Dit kan echter ook voorkomen worden door alle challenges die worden gebruikt tijdelijk (zolang ze gelden) op te slaan en ze te verwijderen zodra het tijdsframe voorbij is. Het is dan alleen nog mogelijk om één keer een bericht te plaatsen met de betreffende challenge.
Als er replay attacks gedaan worden, is het al te laat. Als de bots al goed genoeg zijn om 1x goed te posten, kunnen ze ook als je replays voorkomt wel slim genoeg zijn om steeds een nieuwe challenge op te halen. De botjes hoeven hiervoor niet echt intelligenter te worden. Het kost het botje wel meer resources, maar dat kost het jou ook omdat je stateful geworden bent.
Wat overigens wel simpel te doen is, is bij de serverside hash ook het pagina/artikel ID mee te nemen zodat een botje niet meteen alle pagina's kan proberen.

{signature}


Verwijderd

Voutloos schreef op maandag 20 november 2006 @ 16:16:
[...]
Als er replay attacks gedaan worden, is het al te laat. Als de bots al goed genoeg zijn om 1x goed te posten, kunnen ze ook als je replays voorkomt wel slim genoeg zijn om steeds een nieuwe challenge op te halen. De botjes hoeven hiervoor niet echt intelligenter te worden. Het kost het botje wel meer resources, maar dat kost het jou ook omdat je stateful geworden bent.
Wat overigens wel simpel te doen is, is bij de serverside hash ook het pagina/artikel ID mee te nemen zodat een botje niet meteen alle pagina's kan proberen.
Wat ik beschreef is maar een onderdeel van het geheel. Zoals ik al eerder heb aangegeven zijn er meerdere zaken waarop je de input kunt controleren (minimaal en maximaal tijdsverschil tussen het verzenden de request en ontvangen van de reply daarop + het checken van het aantal links in de reply + etc...).

Verder maakt dit je inderdaad stateful en het is een afweging die iedereen moet maken of hij/zij dat wil doen. Bots zullen steeds slimmer worden dus het zal altijd wel een gevecht blijven tussen de programmeur van (bijv.) een blog en de programmeur van een bot. De afweging hoe ver je hierin wilt gaan kun je volgens mij alleen zelf maken.

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 17:14
curry684 schreef op maandag 20 november 2006 @ 16:14:
Bliep? :? Mocht je code feitelijk willen verspreiden die van deze tactiek gebruik maakt ga je toch hopelijk van die "private key" een serverside configsetting maken.
Bedacht ik me ook toen ik onderweg was naar m'n vergadering, daarvoor gebruik je natuurlijk een salt die je creeert bij het installeren 8)7 sorry, niet helemaal helder momentje :+

Maar face it, een enkele spam comment ga je toch nooit tegenhouden, om relay te voorkomen is een check op IP eigenlijk al voldoende, als je daarnaast comments met meer dan 1 link in een admin-que zet ben je eigenlijk al klaar :)

[ Voor 6% gewijzigd door FragFrog op 20-11-2006 17:16 ]

[ Site ] [ twitch ] [ jijbuis ]


  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Ik ben bezig met een eigen CMS/blogging brouwsel, en zal net als elk ander, comment spam krijgen. Lijkt me sterk dat ik dat niet zou gaan krijgen :D

Als ik dan kijk naar de genoemde idee'en, lijk het me wel wat om ze allemaal naast elkaar en door elkaar te gebruiken.

Het commenten gebeurd op een apparte pagina, zodat de referer gecheckt kan worden.

Lege hidden inputfields meegeven die altijd leeg moeten zijn, voorkomt de botjes die gewoon links in alle inputfields rammen.

Bij het klikken op de submit-button naar een bevestigings pagina sturen, waar de challenge wordt gezet waar de comment bevestigd moet worden, en daar geef je de poster 10 seconden voor ofzo.

En checken op de aantal links, meer dan 2 inderdaad in een queue zetten.

Geen idee of het uberhaut effect zal hebben, maar aangezien je toch niet wilt dat zoekmachine dat soort pagina's indexeren, gewoon een 404 Not Found header met de pagina's meegeven.

Optie1: Ik zat ook nog te denken om wel een cookie te zetten op de invoer pagina, die op de bevestig pagina nog precies zo moet zijn.

Optie2: Geen idee of dit te doen is hoor, eventueel toch met een stukje javascript aan de gang, die op het moment van de submit nog een extra veld toevoegd en de inhoud uit de content van de comment haalt, zodat er 2 velden identiek aan elkaar moeten zijn.

Volgensmij moet het meeste toch aardig spambot-proof zijn lijkt me..

Ey!! Macarena \o/


  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 30-11 19:23
RaZ schreef op woensdag 13 december 2006 @ 09:07:
Het commenten gebeurd op een apparte pagina, zodat de referer gecheckt kan worden.
Houdt er dan wel rekening mee dat de referer niet door elke browser meegegeven hoeft te worden.
Geen idee of het uberhaut effect zal hebben, maar aangezien je toch niet wilt dat zoekmachine dat soort pagina's indexeren, gewoon een 404 Not Found header met de pagina's meegeven.
En hoe kunnen bezoekers er dan opkomen?
Optie1: Ik zat ook nog te denken om wel een cookie te zetten op de invoer pagina, die op de bevestig pagina nog precies zo moet zijn.
Niet iedereen accepteerd cookies, dus ook zonder cookies moet het werken. Aangezien spambotjes ook prima cookies kunnen weigeren (lijkt me zelfs dat ze dat altijd doen), zal dit naar mijn idee weinig nut hebben.
Optie2: Geen idee of dit te doen is hoor, eventueel toch met een stukje javascript aan de gang, die op het moment van de submit nog een extra veld toevoegd en de inhoud uit de content van de comment haalt, zodat er 2 velden identiek aan elkaar moeten zijn.
Javascript kan uitgeschakeld worden in de browsers, hoe ga je daar mee om?

Bezoek eens een willekeurige pagina


  • MisterData
  • Registratie: September 2001
  • Laatst online: 27-11 20:42
Kijk ook eens naar Akismet. Dat is een webservice die door onder andere Wordpress gebruikt wordt om spam te herkennen.Houdt mijn weblogje keurig schoon! :)

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

EdwinG schreef op woensdag 13 december 2006 @ 09:30:
[...]

Houdt er dan wel rekening mee dat de referer niet door elke browser meegegeven hoeft te worden.
I know, IE doet geen referer mee sturen als er met javascript een popup wordt gedaan. Heb van een aantal maanden logs zitten onderzoeken, en de heb nog geen browser-agent gezien die zonder referer over m'n site heen was gegaan, enkel bots.
[...]

En hoe kunnen bezoekers er dan opkomen?
Heel simpel, gewoon de pagina laten zien, nog nooit een custom error page gezien? ;)
[...]

Niet iedereen accepteerd cookies, dus ook zonder cookies moet het werken. Aangezien spambotjes ook prima cookies kunnen weigeren (lijkt me zelfs dat ze dat altijd doen), zal dit naar mijn idee weinig nut hebben.
Dat zullen vast niet de huis-tuin-en-keuken gebruikers zijn, het gros van de gebruikers weet niet eens hoe ze het aan of uit moeten zetten. En als e het uitzetten kom je bijna geen website meer op waar je ingelogd moet zijn.
[...]

Javascript kan uitgeschakeld worden in de browsers, hoe ga je daar mee om?
Ik zei als eventueel een optie. Nog niet doordacht cq. total uitgewerkt.
MisterData schreef op woensdag 13 december 2006 @ 09:40:
Kijk ook eens naar Akismet. Dat is een webservice die door onder andere Wordpress gebruikt wordt om spam te herkennen.Houdt mijn weblogje keurig schoon! :)
I know, die optie had ik zelf aan aangedragen toen het draadje net gestart was :P

Maar ik doe het liever zelf in elkaar prutselen, die uitdaging is gewoon groter dan simpel weg een class gebruiken. We zijn tweakers of niet natuurlijk :D

Overigens heb ik nog een lange weg te gaan hoor, enige PHP wat ik ken is: <?php echo "hoi wereld"; ?> en van SQL ken ik uberhaut al niets. Pak het direct grof aan dus :P

Ey!! Macarena \o/

Pagina: 1