View previous topic :: View next topic |
Author |
Message |
think4urs11 Bodhisattva
Joined: 25 Jun 2003 Posts: 6659 Location: above the cloud
|
Posted: Fri Sep 01, 2006 10:34 am Post subject: |
|
|
slick wrote: | Think4UrS11 wrote: | @slick:
Weil mir das gerade so in den Sinn kam... was passiert eigentlich wenn $pöserSpammer auf die Idee kommt und deine Kontaktseite ein bischen ärgert?
Wann läuft dir deine DB über? |
Anarcho wrote: | ...Das wären dann 60 Mailadressen pro Minute, also 3600 pro Stunde, also 21600 alle 6 Stunden. ... |
Ach Gottchen... nun habt euch doch nicht so. Ja, ok, dieses Problem hatte ich nicht bedacht (Danke für den Tipp!), aber was spricht dagegen pro anfragende IP einen "Cache" von 1h oder so einzubauen. Damit wäre zumindest dieses Problemchen aus der Welt |
Nö nicht wirklich.
Nachdem die meisten Provider keinerlei Ingress-Filtering betreiben ist es ein leichtes deine DB zu fluten. Und selbst wenn man zufällig einen ISP hat der ingress filtert - nimmt man sich eben eine Liste von open proxies, ein Botnetz oder tor oder oder oder - Demonstration gefällig? _________________ Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself |
|
Back to top |
|
|
sirro Veteran
Joined: 20 Jul 2003 Posts: 1472 Location: aachen.nrw.de.eu
|
Posted: Fri Sep 01, 2006 11:13 am Post subject: |
|
|
STiGMaTa_ch wrote: | @sirro
Danke für deinen Tatsachen Bericht Wenn man den Artikel unter http://news.bbc.co.uk/2/hi/technology/2969783.stm liest, dann könnte man schon glauben, dass es funktioniert. Allerdings ist der selbige bereits 3 Jahre alt... |
Spammer lesen sicher auch solche Berichte |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Fri Sep 01, 2006 11:19 am Post subject: |
|
|
Think4UrS11 wrote: | Nö nicht wirklich.
Nachdem die meisten Provider keinerlei Ingress-Filtering betreiben ist es ein leichtes deine DB zu fluten. Und selbst wenn man zufällig einen ISP hat der ingress filtert - nimmt man sich eben eine Liste von open proxies, ein Botnetz oder tor oder oder oder - Demonstration gefällig? |
Naja.. ich denke wir sollten auf dem Boden bleiben. Gehe ich davon aus das ein Angreifer ein Botnetz hat und mir böses will habe ich sicher andere Probleme als eine theoretisch vollaufende DB. Proxylisten sehe ich beim Einsatz eines Cache o.ä. auch nicht als Problem, da sind meist nur wenige wirklich funktionierende Proxys drin und wenn dan sind das zusammen auch "nur" ein paar tausend. Tor, ok, wäre eine Möglichkeit, aber ist denke ich auch nicht ausreichend performant bzw. entsprechend groß um da sehr viel Schaden anzurichten. Und wie Anarcho schön vorgerechnet hat, bei 1 Aufruf je Sekunde macht das 21600 in 6 Stunden. Nehmen wir mal einer knallt mit 100 verschiedenen IPs pro Sekunde rein, das macht 2.160.000 Einträge in der DB. Durchaus leistbar würde ich mal spontan behaupten und mal realistisch betrachtet wer bekommt über eine längeren Zeitraum (außer mit einem Botnetz) 100 verschiedene IPs pro Sekunde zusammen? Im Zweifelsfall kann man dann die Zeitspanne < 6h setzen, wer braucht schon 6 Stunden für eine Mail, realitisch reicht da auch 1h.
Ok, und über einen Belastungstest können wir mal verhandeln wenn ich noch bissl gescriptet habe, aber ich glaube bei den angenommenen Dimensionen kackt eher der Apache vorher ab. |
|
Back to top |
|
|
Rene-dev Apprentice
Joined: 22 Jan 2005 Posts: 163 Location: Münster, Germany
|
Posted: Fri Sep 01, 2006 2:55 pm Post subject: |
|
|
mann könnte auch die mail addresse in html "verstecken"
ist zwar nicht so sicher wie anarchos lösung, aber braucht dafür kein javascript
http://renehopf.de/test.php
rene[/code] |
|
Back to top |
|
|
return13 Guru
Joined: 02 Feb 2004 Posts: 513 Location: Hamburg - Germany
|
Posted: Fri Sep 01, 2006 8:05 pm Post subject: |
|
|
wie wäre es denn mit einer art vertrauensnetz? also A vertraut B - ich bekomm von B ein spam - somit fällt B komplett und A teilweise in seinen Vertrauenspunkten und alle anderen die B vertrauen... müsste halt nur jede mail digital siniert sein... pgp...
es wäre zumindest ne überlegung wert denk ich...
Etwas ähnliches wird ja wahrscheinlich schon bei den größeren Email providern benutzt, was ich jedoch meine ist etwas übergreifendes, etwas wo nicht jeder sein eigenes Süppchen kochen muss.... |
|
Back to top |
|
|
monade Apprentice
Joined: 17 Mar 2005 Posts: 204 Location: Berlin
|
Posted: Mon Sep 04, 2006 2:31 pm Post subject: |
|
|
Anarcho wrote: |
Zu meiner test.php:
...
Ich werde die Funktion posten wenn ich wieder zuhause bin. |
Reminder. Ne im Ernst, ich würde die test.php auch gern sehen, auch wenn sie wie du meinst ziemlich simpel gestrickt ist. |
|
Back to top |
|
|
Anarcho Advocate
Joined: 06 Jun 2004 Posts: 2970 Location: Germany
|
Posted: Mon Sep 04, 2006 3:06 pm Post subject: |
|
|
monade wrote: | Anarcho wrote: |
Zu meiner test.php:
...
Ich werde die Funktion posten wenn ich wieder zuhause bin. |
Reminder. Ne im Ernst, ich würde die test.php auch gern sehen, auch wenn sie wie du meinst ziemlich simpel gestrickt ist. |
Ah, hast recht, vergessen:
Hier also die test.php:
Code: | <html>
<head>
<title>So, dann scan mal nach dieser Emailadresse</title>
</head>
<body>
<h1>So, dann scan mal nach dieser Emailadresse</h1>
<form method="get" action="">
Email: <input type="text" name="email"><br>
<input type="submit" value="Ab damit">
</form>
<?php
if (isset($_GET['email'])) {
print getJSCryptedString('<a href="mailto:'.$_GET['email'].'">Testmail</a>');
}
/**
* Function to encrypt a text which will be decrypted by the browsers Javascript engine. Basically used against spambots.
* @param string $text The text to encrypt
* @return string
*/
function getJSCryptedString($text) {
$len = strlen($text);
$hash='v'.md5($text.rand(1,50));
$compl = getRandomString($len);
$enc = getEncString($text,$compl);
$ret = redoJS($hash,$enc,$compl);
return '<script language="javascript">'.$ret.'</script>';
}
function getRandomString($length) {
$ret = array();
$possible = "0123456789bcdfghjkmnpqrstvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$i = 0;
while ($i < $length) {
$char = substr($possible, mt_rand(0, strlen($possible)-1), 1);
$ret[] = ord($char);
$i++;
}
return $ret;
}
function getEncString($email, $compl) {
$len = strlen($email);
$ret = array();
for ($i=0;$i<strlen($email);$i++) {
$ret[] = (ord(substr($email,$i,1)) ^ $compl[$i]);
}
return $ret;
}
function redoJS($h,$enc,$compl) {
$ret = '';
$ret.= 'var '.$h.'1 = "'.implode('.',$enc).'";';
$ret.= 'var '.$h.'2 = "'.implode('.',$compl).'";';
$ret.= 'var '.$h.'4 = new Array();';
$ret.= 'var '.$h.'5 = new Array();';
$ret.= $h.'4 = '.$h.'1.split(".");';
$ret.= $h.'5 = '.$h.'2.split(".");';
$ret.= 'var ret = "";';
$ret.= 'var '.$h.'3 = '.$h.'1.length;';
$ret.= 'for(i=0;i<'.$h.'3;i++){';
$ret.= 'ret+=String.fromCharCode('.$h.'5[i] ^ '.$h.'4[i]);';
$ret.= '}';
$ret.= 'document.write(ret);';
return $ret;
}
?>
</body>
</html> |
_________________ ...it's only Rock'n'Roll, but I like it! |
|
Back to top |
|
|
monade Apprentice
Joined: 17 Mar 2005 Posts: 204 Location: Berlin
|
Posted: Mon Sep 04, 2006 4:36 pm Post subject: |
|
|
Danke! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|