[PHP/Javascript] WebCrawlers omzeilen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • WOmBaT
  • Registratie: September 2000
  • Laatst online: 02-09 07:31

WOmBaT

Nyaaa!!!

Topicstarter
Hoi,

Ik heb een tijdje na zitten denken om eens van die irritante spam af te komen. Ik heb net wat code geschreven in php en javascript (niet-getest) om WebCrawlers te omzeilen:

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form name="emailForm" action="emailredirector.php" method="post">
  <input type="hidden" name="formposted" value="true" />
  <input type="hidden" name="email" value="encodedEmailAddress" />
  <input type="hidden" name="subject" value="blaat" />

  <a href="javascript:goToEmail()">Email us</A>
</form>

<script language="JavaScript">
function goToEmail()
{
  document.emailForm.submit();
}
</script>


emailRedirector.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
  if ($_POST['formposted'] == "true") {
    header("Location: mailto:" . emailDecode($_POST['email']) . "?" . $_POST['subject']);
  } else {
    echo "No WebCrawlers allowed!";
  }

  function emailDecode($blaat) {
    // decodeer $blaat met een of andere mooie functie
    // return $decode;
  } 
?>


Is mijn denkwijze correct? Is dit een goede manier om Webcrawlers te omzeilen of mis ik nog dingen?

Oeps, topictitel vergeten |:( : Graag wijzigen naar WebCrawlers omzeilen of iets dergelijks :>

[ Voor 69% gewijzigd door WOmBaT op 06-01-2005 12:53 . Reden: Typo fixed |:( ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Waarschijnlijk werkt het zelfs al waneer je:
JavaScript:
1
2
3
4
5
6
7
document.write('<a href="');
document.write('mail');
document.write('to');
document.write(':janoz');
document.write(chr(64));
document.write('tweakers.net');
document.write('">mail me</a>');


Dan heb je php niet eens nodig. Bovenstaande heeft het mailto linkje en de email zelf al zo geobfuscated dat het voor een script al lang niet meer loont om de volledige javascript te gaan parsen om op die manier het email adres te achterhalen.

[ Voor 32% gewijzigd door Janoz op 06-01-2005 12:59 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • WOmBaT
  • Registratie: September 2000
  • Laatst online: 02-09 07:31

WOmBaT

Nyaaa!!!

Topicstarter
Klopt, dat wilde ik aanvankelijk ook als deel van deze implementatie kiezen, maar geavanceerdere crawlers die bijvoorbeeld een Internet Explorer component integreren kunnen ook de gegenereerde source bekijken. Hoogst onwaarschijnlijk, dat wel :P maar ik wil gaan voor net dat beetje extra veiligheid. 8)7

Maar goed, dat betekent ook dat ze dan een onClick op een link zullen kunnen simuleren, misschien ben ik toch net iets te wantrouwend. :P

[ Voor 19% gewijzigd door WOmBaT op 06-01-2005 13:03 ]


Acties:
  • 0 Henk 'm!

  • PhoeniX-
  • Registratie: Juni 2000
  • Laatst online: 01-09 10:26
Ik encodeer server side alle mailadressen, en laat javascript ze client side weer decoden.
Ik gebruik het volgende om dat te doen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
        function javascriptCrypt($st) {
                $html = $st;
                $enc_string = "";
                $html = str_replace("\r\n", "",$html);
                $length = strlen($html);

                for ($i=0;$i<$length;$i++){
                        $current_chr = substr($html, $i, 1);
                        $inter = ord($current_chr)+3;
                        $enc_string .= chr($inter);
                }
                return $enc_string;
        }


JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
var a, s, n;
function UnCrypt(s) {
    r='';
    for(i=0;i<s.length;i++){
        n=s.charCodeAt(i); 
        if (n>=8364) {
            n = 128;
        } 
        r += String.fromCharCode( n - 3 ); 
    }
    return r;
}


Een link komt er dan ongeveer zo uit te zien:
javascript:location.href=UnCrypt('pdlowr=skrhql{Cgr0lw0zheghvljq1qo');

Ik hoop dat je er wat aan hebt :)

edit:

Het slaat niet helemaal op jouw situatie, maar ik denk dat het duidelijk genoeg is om (als basis) te gebruiken voor jouw situatie

[ Voor 16% gewijzigd door PhoeniX- op 06-01-2005 13:43 ]


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Je offert nu wel een deel van je accessability op voor wat minder spam.

Zo kunnen visueelgehandicapten, of mensen met een tekst-browser, of zonder javascript, je niet meer emailen.

Acties:
  • 0 Henk 'm!

  • clevy
  • Registratie: Juni 2001
  • Laatst online: 03-07-2024

clevy

It&#039;s a race !

denk niet dat het met een form werkt, op een site heb ik een response form dat dmv php een mail naar de webmaster stuurt. dat komt nogal eens leeg aan met als referer adres een webcrawler. blijkbaar submitten die dingen ook forms om verder te crawlen.

a word to the wise is more often the start of an argument than the help it ought to be


Acties:
  • 0 Henk 'm!

  • WOmBaT
  • Registratie: September 2000
  • Laatst online: 02-09 07:31

WOmBaT

Nyaaa!!!

Topicstarter
Thanx, die kan denk ik goed geintegreerd worden in deze oplossing :)

Ik neem aan dat alle textuele versies (geen images met emailadressen) hiermee wel gedekt zijn of bestaan er nog alternatieve manieren?
clevy schreef op donderdag 06 januari 2005 @ 13:53:
denk niet dat het met een form werkt, op een site heb ik een response form dat dmv php een mail naar de webmaster stuurt. dat komt nogal eens leeg aan met als referer adres een webcrawler. blijkbaar submitten die dingen ook forms om verder te crawlen.
Is dat een POST of een GET form. Het feit dat ie leeg aankomt, is dat omdat de crawler navigeert naar de url die in je action gespecificeerd is en er altijd een mail gestuurd wordt? Om dat te voorkomen wilde ik juist die hidden variabele gebruiken :)
Verwijderd schreef op donderdag 06 januari 2005 @ 13:57:
[...]


Alsjeblieft, doe het niet. Ik word zo moe van al die sites waar basisfunctionaliteit als right click, open in new window niet werkt...

Of wat dacht je van die sites die als je rechtsklikt een popup met iets als 'U hebt geen toestemming om de HTML source te bekijken' laten zien? Pathetisch gewoon.
Zover wil ik het ook niet laten komen. Met een normale javascript browser navigeer je nog steeds naar de emaillink. Rightclick disablen hoeft voor mij niet. Het gaat me alleen om het automatisch verzamelen van emailadressen te voorkomen.

[ Voor 90% gewijzigd door WOmBaT op 06-01-2005 14:01 ]


Acties:
  • 0 Henk 'm!

Verwijderd

WOmBaT schreef op donderdag 06 januari 2005 @ 13:01:
Klopt, dat wilde ik aanvankelijk ook als deel van deze implementatie kiezen, maar geavanceerdere crawlers die bijvoorbeeld een Internet Explorer component integreren kunnen ook de gegenereerde source bekijken. Hoogst onwaarschijnlijk, dat wel :P maar ik wil gaan voor net dat beetje extra veiligheid. 8)7

Maar goed, dat betekent ook dat ze dan een onClick op een link zullen kunnen simuleren, misschien ben ik toch net iets te wantrouwend. :P
Alsjeblieft, doe het niet. Ik word zo moe van al die sites waar basisfunctionaliteit als right click, open in new window niet werkt...

Of wat dacht je van die sites die als je rechtsklikt een popup met iets als 'U hebt geen toestemming om de HTML source te bekijken' laten zien? Pathetisch gewoon.

Acties:
  • 0 Henk 'm!

  • WOmBaT
  • Registratie: September 2000
  • Laatst online: 02-09 07:31

WOmBaT

Nyaaa!!!

Topicstarter
Verwijderd schreef op donderdag 06 januari 2005 @ 13:57:
[...]


Alsjeblieft, doe het niet. Ik word zo moe van al die sites waar basisfunctionaliteit als right click, open in new window niet werkt...

Of wat dacht je van die sites die als je rechtsklikt een popup met iets als 'U hebt geen toestemming om de HTML source te bekijken' laten zien? Pathetisch gewoon.
Wat ik bedoelde met gegenereerde source is de totale output van een pagina, zoals die er in html zou uitzien, zonder document.write te gebruiken. Als je dus
HTML:
1
<script>document.write('blaat')</script>
zou gebruiken zou je als html source alleen
HTML:
1
blaat
zien en dus ook zo geobfuscate emailaddressen. Dat iemand voor de rest in mijn source wil kijken moet ie zelf weten, dan wens ik em veel plezier :7

Acties:
  • 0 Henk 'm!

Verwijderd

WOmBaT schreef op donderdag 06 januari 2005 @ 14:14:
[...]


Wat ik bedoelde met gegenereerde source is de totale output van een pagina, zoals die er in html zou uitzien, zonder document.write te gebruiken. Als je dus
HTML:
1
<script>document.write('blaat')</script>
zou gebruiken zou je als html source alleen
HTML:
1
blaat
zien en dus ook zo geobfuscate emailaddressen. Dat iemand voor de rest in mijn source wil kijken moet ie zelf weten, dan wens ik em veel plezier :7
OK (gerustgesteld) :)
Pagina: 1