Toon posts:

[php] Algemene anti-spam-functie

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

Verwijderd

Topicstarter
Misschien heb ik niet goed gezocht hoor, maar ik ben op zoek naar een algemene functie in PHP waar je een string in kunt stoppen, en die d.m.v. het returnen van een integer de 'spam'-score aangeeft. Is dit een heel belachelijk idee of wat? Dit zou toch ideaal zijn.

Een voorbeeld
Ik heb een website die draait onder WordPress. Ik heb zelf een plugin geschreven die ervoor zorgt dat ik een gastenboek op m'n site heb. Alles leuk en aardig, maar soms komen er van die botjes langs die spam plaatsen in het gastenboek. Deze spam is eigenlijk makkelijk te herkennen; ik heb dan ook de volgende code gebruikt:
PHP:
1
if(eregi('a href', $_POST['posted_bericht'])
Dit zorgt ervoor dat elke post waarin iemand een link probeert te maken wordt genegeerd. Wat zijn nu typische 'spam-elementen' waarop ik moet filteren? Is hier een algemene functie ofzo voor? Of zijn hier mensen mee bezig?

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
er zijn al een aantal topics geweest over hoe je spam kan tegengaan
van het overtypen van tekst uit plaatjes tot het dmv javascript zetten van waardes in bepaalde velden die je mee submit.

echter, ik denk niet dat je een bericht adhv de content als spam kan herkennen. En zeker niet dmv een 'algemene regel'
als ik bij iemand informatie aanvraag over bijv. viagra dan wil ik niet dat iemand me berichtje er uit haalt omdat er viagra in voor komt bij wijze van spreken

This message was sent on 100% recyclable electrons.


  • ReverendBizarre
  • Registratie: December 2001
  • Laatst online: 24-03-2021
Een spam detectie functie lijkt me iets heel subjectiefs en zeer afhankelijk van de context dus ik denk niet dat daar ooit een standaard functie voor zal komen. Er zullen echter ongetwijfeld wel algoritmes te vinden zijn die zoiets doen. Maar dat soort algoritmes zullen vermoedelijk toch veelal opereren op een data set (met andere woorden ze hebben ook toegang nodig tot 'voorbeelden' van wat spam is). En zelfs dan is het nog maar de vraag of dat wel altijd zo nauwkeurig is. Er is nou eenmaal geen magische fool proof manier om van een klein stukje tekst altijd met zekerheid te zeggen of het spam is of niet.

Voor dingen als spam protectie in gastenboeken en dergelijke kan je beter kijken naar andere oplossingen denk ik. Bijvoorbeeld door Javascript te gebruiken voor het submitten van de data. Daarmee sluit je al gelijk een hele berg minder geavanceerde spam bots buiten want die kunnen geen Javascript interpreteren. Er zijn vast nog wel meer van dit soort truukjes te vinden om het spam bots moeilijk te maken om uberhaupt data te submitten.

Dat is de richting waarin ik het zelf zou zoeken, eerlijkgezegd. Spam filters zijn mij te complex en onbetrouwbaar om zomaar los te laten op dit soort dingen (wie zegt dat ze ook niet posts gaan weigeren van legitieme gebruikers?).

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Eenvoudigste oplossing: mbv Javascript een input type=hidden veld invullen met een waarde dat achteraf gecontroleerd kan worden door PHP én een noindex invullen bij de META robots tag, zodat de gastenboek niet te vinden is via o.a. Google.

  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

Misschien kan je beter iets met Captcha doen?

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Je zou gebruik kunnen maken van spamassassin. Er zit namelijk een tooltje bij (spamc) waar je de text naartoe kunt pipen en een score als resultaat kan krijgen. Spamassassin kan je bovendien configureren (en wordt verscheept) met diverse regels met betrekking tot aantal hoofdletters, bepaalde woordcombinates, html tags, etc. Bedenk echter wel dat spamassassin bedoeld is voor het scannen van emails dus of het echt zondermeer gaat werken durf ik niet te zeggen.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Radiant schreef op zaterdag 08 juli 2006 @ 10:47:
Misschien kan je beter iets met Captcha doen?
Er zijn betere manieren om spam tegen te gaan dan Captcha-images; manieren waarbij tussenkomst van de gebruiker niet nodig is en je toch kan zien dat je met een echte browser te maken hebt in plaats van met een script. Veel van die manieren zijn hier al genoemd, andere zijn bijvoorbeeld hier na te lezen. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • TRON
  • Registratie: September 2001
  • Laatst online: 27-11 12:50
Ik filter heel simpel op een aantal steekwoorden en ik moet zeggen dat alle spam sindsdien opgevangen wordt in mijn shoutbox :)

Leren door te strijden? Dat doe je op CTFSpel.nl. Vraag een gratis proefpakket aan t.w.v. EUR 50 (excl. BTW)


  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Captcha is ranzig. Verder heb ik zelf ook ervaren dat de spambots verschillende IP's gebruiken bij de GET van de gastenboek en bij de POST erna. Dit kun je ook in PHP controleren. Je benadeelt hiermee alleen wel de gebruikers met een dynamische IP, al is deze groep relatief klein. Verder heb ik in de httpd.conf een rewriterule staan waarbij de GET van de gastenboek, waarvan de referrer ontbreekt, wordt geredirect naar de hoofdpagina. Hiermee benadeel je alleen wel de gebruikers met een lompe firewall of andersoortig securityrommel in de browser, al is deze groep ook relatief klein.

[ Voor 37% gewijzigd door BalusC op 08-07-2006 17:11 ]


Verwijderd

een leuke asp antispam functie kan je via op:
http://www.madness.nl/scripts/script.asp?sid=6

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
en nu de startpost nog lezen :/

This message was sent on 100% recyclable electrons.


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

Kijk eens naar Akismet, zou ik zeggen (zeker met WordPress!).

Rustacean


  • mazz
  • Registratie: November 2004
  • Laatst online: 08-06 13:48
Je kunt toch ook een htaccess neerzetten en in de welkomtekst de username en pass vermelden?
Dat snappen die botjes toch niet

20 jaar, en wat had ik bereikt?


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
mazz schreef op dinsdag 10 april 2007 @ 13:54:
Je kunt toch ook een htaccess neerzetten en in de welkomtekst de username en pass vermelden?
Dat snappen die botjes toch niet
Je kunt ook een straatoud topic laten rusten ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.