Wat ziet een spam-bot?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Ozzie PHP

Ozzie PHP

15/09/2016 01:44:24
Quote Anchor link
Hey guys,

Weet iemand van jullie wat een spam-bot eigenlijk "ziet"?

Een voorbeeld ... ik zet in een formulier een selectbox met als label "niet aanvinken" en vervolgens haal ik met javascript die selectbox en label weer weg ... ziet die spam-bot die selectbox en label dan wel of niet?
 
PHP hulp

PHP hulp

23/11/2024 12:07:24
 
Ward van der Put
Moderator

Ward van der Put

15/09/2016 07:31:30
Quote Anchor link
Ja, dit type gebruik van JavaScript verhoogt de spamscore. Niet dat de mail dan gelijk wordt afgekeurd, maar daarmee wordt de kans wel hoger.

Kijk maar in de rule sets van SpamAssassin: die voor HTML bevat onder andere een test voor de methode document.write.
 
Ben van Velzen

Ben van Velzen

15/09/2016 11:46:31
Quote Anchor link
Het ligt er maar net aan. Als het een eenvoudige HTML reader is ziet hij de originele HTML. Wanneer hij ook javascript uit kan voeren wordt het al wat spannender. Zie bijvoorbeeld PhantomJS.
 
Ozzie PHP

Ozzie PHP

15/09/2016 15:35:55
Quote Anchor link
@Ward

Ik vermoed dat je me niet helemaal goed hebt begrepen. Volgens mij heb jij het over spam-detectie. Ik bedoel echter een spam-bot die op je website komt en probeert een contactformulier in te vullen.

Het idee is om aan het contactformulier een selectbox of inputveld toe te voegen dat de gebruiker niet ziet, maar een spam-bot wel. Als die selectbox of inputveld dan is ingevuld, weet ik dat het om een spam-bot gaat en wordt het bericht niet verzonden.

De vraag is, wat is de beste manier om dat inputveld of selectbox te verbergen zodat een normale bezoeker die niet te zien krijgt, maar de spam-bot wel?

Volgens mij zijn er 2 manieren: verbergen via css of via javascript. Maar welke manier is beter, of moet ik ze beiden toepassen?
 
Ward van der Put
Moderator

Ward van der Put

15/09/2016 16:01:32
Quote Anchor link
Ah, sorry Ozzie, nu zie ik hoe je de vraag bedoelt.

Ik heb ze beide wel eens gebruikt, maar kan niet zeggen dat de een of ander merkbaar beter werkt.

Is de "no CAPTCHA reCAPTCHA" van Google misschien nog een alternatief?

 
Ozzie PHP

Ozzie PHP

15/09/2016 16:05:41
Quote Anchor link
>> Ah, sorry Ozzie, nu zie ik hoe je de vraag bedoelt.

No problem :-)

>> Is de "no CAPTCHA reCAPTCHA" van Google misschien nog een alternatief?

Op zich wel, maar ik wil mensen die een vraag willen stellen niet lastigvallen met een captcha.

Wat ik nu dus wil doen is een inputveld maken dat ik verberg. Als het is ingevuld gaat het om een spam-bot. Maar hoe zal ik dat invulveld voor de 'normale' bezoeker verbergen? Via css en/of js?
 
Ward van der Put
Moderator

Ward van der Put

15/09/2016 16:20:11
Quote Anchor link
>> Via css en/of js?

JavaScript, vooral omdat het parsen van CSS gemakkelijker is dan het uitvoeren van script.
 
Ozzie PHP

Ozzie PHP

15/09/2016 16:23:16
Quote Anchor link
Oké ... maar dan dus NIET ook nog via CSS? Dus alleen maar via Javascript?
 
Ward van der Put
Moderator

Ward van der Put

15/09/2016 16:25:26
Quote Anchor link
Ja/nee. Niet ook in CSS als je hetzelfde element verbergt, want dan geef je in de CSS al een hint over iets dat je met JavaScript juist probeert te verhullen.
Gewijzigd op 15/09/2016 16:30:59 door Ward van der Put
 
Ozzie PHP

Ozzie PHP

15/09/2016 16:31:21
Quote Anchor link
Hmm .. ik volg je niet ... komt door de manier waarop je het hebt opgeschreven :-)

Stel ik doe zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<p id="ABC"><label for="abc">veld leeglaten</label><input name="abc"></p>

Nu kan ik dus #ABC via css verbergen, maar ook via Javascript ... of zowel via css als via Javascript.

Jij zei: Niet als je hetzelfde element verbergt, want dan geef je in de CSS al een hint over iets dat je met JavaScript juist probeert te verhullen.

Kun je aan de hand van bovenstaand voorbeeldje uitleggen wat je daarmee bedoelde?
 
Ward van der Put
Moderator

Ward van der Put

15/09/2016 16:39:51
Quote Anchor link
Stel, een spambot beheerst CSS en geen JavaScript. Als je dan hetzelfde element verbergt in CSS, is alleen dat al een hint dat je hetzelfde doet in JavaScript. Of anders gezegd: zelfs zonder ook maar iets JavaScript te begrijpen, weet de spambot dan al dat hij wordt misleid met dat element. De CSS en het JavaScript moeten idealiter daarom compleet gescheiden hun eigen ding doen.
 
Ozzie PHP

Ozzie PHP

15/09/2016 16:43:15
Quote Anchor link
>> Of anders gezegd: zelfs zonder ook maar iets JavaScript te begrijpen, weet de spambot dan al dat hij wordt misleid met dat element.

Oké ... dus je bedoelt te zeggen ... mogelijk kent de spambot css en daarom kan ik beter js gebruiken?

>> De CSS en het JavaScript moeten idealiter daarom compleet gescheiden hun eigen ding doen.

Wat bedoel je specifiek met "gescheiden" en "hun eigen ding". Kun je een voorbeeldje geven?
 
Ward van der Put
Moderator

Ward van der Put

15/09/2016 16:52:55
Quote Anchor link
Dit is bijvoorbeeld een bekende basisopzet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="text" name="subject" style="display:none">


We proberen hiermee de spambot te verleiden om een onderwerp in te vullen. Erg belangrijk: gebruik iets bekends dat vaak moet worden ingevuld.

Een slimme spambot die de CSS-code display:none echter doorziet, zal dat element negeren. Het is immers ook niet zichtbaar voor gewone gebruikers.

En op dát element moet je dus ook niet je JavaScript loslaten. Dan doe je iets dat soms niet werkt alleen maar over, maar dat is dan deels dubbelop. Daarom zou je het JavaScript hiervan los moeten koppelen.
 
Ozzie PHP

Ozzie PHP

15/09/2016 17:00:13
Quote Anchor link
Oké ... laten we hier dan even vanuit gaan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="text" name="subject" style="display:none">

Maakt het iets uit als ik de css in een extern bestand plaats in plaats van inline?

>> En op dát element moet je dus ook niet je JavaScript loslaten.

Ik snap nog steeds niet wat je bedoelt ... bedoel je dat ik op een ander element javascript moet loslaten?

In mijn voorbeeldje hierboven zou ik de paragraaf met ID ABC kunnen verbergen zodat de bezoeker dat hele veld niet meer ziet. Maar ik snap jouw onderscheid tussen css en js niet.

Als ik die paragraaf inline op display:none zet, dan kan ik me voorstellen dat een spambot dat doorziet, maar als ik het via een extern stylesheet doe ... dan nog steeds? Of via js?

Dat is dus eigenlijk mijn vraag.
 
Ward van der Put
Moderator

Ward van der Put

15/09/2016 17:26:52
Quote Anchor link
>> Ik snap nog steeds niet wat je bedoelt ... bedoel je dat ik op een ander element javascript moet loslaten?

Ja, een spambot die je CSS-truc doorziet, zal het HTML-element negeren. Dan helpt het toevoegen van JavaScript voor dat element dus niet meer.

Het lijkt een beetje op één slot (dat ene HTML-element) met twee sleutels (CSS en JavaScript). Twee sloten met elk een eigen sleutel is veiliger.
 
Ozzie PHP

Ozzie PHP

15/09/2016 17:32:55
Quote Anchor link
>> Ja, een spambot die je CSS-truc doorziet, zal het HTML-element negeren. Dan helpt het toevoegen van JavaScript voor dat element dus niet meer.

Oké ... maar is het dan dus slimmer om alleen JS te gebruiken en geen CSS? Anders gezegd, is JS moelijker te doorgronden voor een bot dan CSS?

>> Twee sloten met elk een eigen sleutel is veiliger.

Dat klinkt goed, maar heb je een voorbeeldje?
 
Ward van der Put
Moderator

Ward van der Put

15/09/2016 17:42:09
Quote Anchor link
>> Dat klinkt goed, maar heb je een voorbeeldje?

Afbeelding
 
Ozzie PHP

Ozzie PHP

15/09/2016 17:45:14
Quote Anchor link
Hahaha ... dat ziet er lekker uit! Krijg er honger van :-)

Geen idee wat je ermee bedoelt te zeggen ... maar bedankt voor m'n knorrende buik!
 
Michael -

Michael -

15/09/2016 18:25:11
Quote Anchor link
Wat jij bedoelt heet een 'honey-pot'. Dit werd vroeger vaker toegepast en heb het zelf ook wel gebruikt (jaren geleden), maar je moet niet vergeten dat de ontwikkeling van de spam-bots niet stil staat. Deze 'honey-pots' werken in veel gevallen niet meer.
Je ziet ook wel eens zichtbare velden waar je een woord of uitkomst van een optelsom in moet vullen, maar ook dit werkt steeds minder goed. Zelfs simpele captcha's die letters en cijfers in wat kleurtjes met streepjes e.d. weergeven worden gelezen door spam-bots.
Afbeelding

Zoals met alles blijft het een strijd; de één verbetert zijn beveiliging en de ander verbeterd zijn aanval.
Zelfs de (oude) captcha's van Google zijn al te lezen (hier zijn ook scripts voor zodat je toch een login kan automatiseren). De nieuwere captcha's die Ward aangaf zijn mogelijk nog wel (redelijk) veilig voor zolang dat duurt (Spotify gebruikt ze tenslotte ook).
Spam-bots helemaal voorkomen blijft lastig en er zal altijd een mens aan te passen moeten komen om het in de gaten te houden.
 
Bart V B

Bart V B

15/09/2016 20:36:52
Quote Anchor link
Tja, had er ook last van op een van mijn websites.
Van alles geprobeerd, lukte maar niet dus gekozen voor een rigoreuze oplossing:
Ip range blokkeren middels .htaccess. :) Even gekeken waarbij het land behoord, en dat was Rusland, niet de doelgroep, dus een ip ban. Proberen het nog wel, mijn log staat er iedere dag 24/7 vol mee, maar niets van Viagra of andere onzin meer op de website zelf.
 
Ozzie PHP

Ozzie PHP

15/09/2016 20:41:56
Quote Anchor link
>> maar niets van Viagra of andere onzin meer op de website zelf.

Nou gaat het in dit geval niet om "op de website zelf" maar gewoon om een simpel contactformulier. Maar ja, ik wil niet dat daar straks ook op gespamd wordt met Viagra en allerlei onzin.

Ik ben dus vooral benieuwd of zo'n spambot Javascript kan interpreteren.

Stel, ik voeg een veld toe dat NIET moet worden ingevuld. Als ik dat verberg via javascript (of css) is het wel de bedoeling dat de die spambot dat veld wel ziet, anders schiet ik er niks mee op :-s

De vraag is dus hoe "slim" zo'n bot is. Kan die javascript interpreteren?
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.