Angriffe auf bplaced

Hallo,

Wie steht es eigendlich mit der Sicherheit von “bplaced” aus?
Sind die Server auch genügend geschützt?
Da meine Seite ein gutes Ranking hat, kommt es ab und zu vor, das durch meiner Seite ein Angriff auf “bplaced” ausgeübt wird.

Dies ist der heutige Versuch gewesen (gesehen aus meiner Logdatei):

–> IP: 69.162.94.221
–> Referer: unbekannt
–> Host: server5.tshostez.com.br
–> Browser: OPWV-SDK/62 UP.Browser/6.2.2.1.208 (GUI) MMP/2.0
–> Zeit: 22.09.2009 ||| 21:02:01
–> Ziel: /index.php?menue=…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…
/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/proc/self/environ%00

Die anderen Angriffe könnte ich auf verlangen auch heraussuchen. Ist aber viel sucherei.

Zur sicherheit habe ich auch eine Usersperre mit in meiner Seite eingefügt. Leider ist eine solche keine absolute Sicherheit.

wenn dies die besagte seite ist.
sumatrahome.bplaced.net/index.php

suche ich den trafic den du ansprachst vergebens.

und dies hier ist nicht erlaubt:
sumatrahome.bplaced.net/?menue=userupload

Welchen trafic?

Mit den Userupload habe ich nicht gewusst. Nehme ich auch sofort raus. Danke für die Info.

Die Server selber sind sicher ja, allerdings kommt es natürlich drauf an was du für eine Software aka CMS verwendest, diese sind teilweise fehleranfällig was aber nichts mit den Servern zu tun hat.

Ich nutze kein bekanntes CMS. Ich bastele meine CMS-Seiten selber. Ich habe an meiner Homepage sehr lange nichts mehr gemacht, trotzdem müsste sie relativ sicher sein. ich wollte sie aber demnächst mal überarbeiten.

[size=85].htaccess[/size]

order allow,deny
deny from 69.162.94.221
allow from all 

Und der Angreifer kann an deiner Webseite rein gar nix mehr machen… :wink:

nur das das nur bei einer statischen IP geht ansonsten müsste man ne IP Range nehmen^^
Auch wenn es mehrere sind bringts wenig^^ Des weiteren sagte er schon das er ihn/es gebannt hat.

Es ist weniger sinnvoll, eine einzelne IP zu sperren. Die werden höchstwarscheinlich am nächsten Tag einem anderen User zugeteilt.
Als Sperre habe ich so etwas gebastelt:

////////////////Sperre ungebetener Besucher////////////////////////////
$ip=getenv("REMOTE_ADDR");
$host=gethostbyaddr($ip);
$browser=$_SERVER["HTTP_USER_AGENT"];
if($ip=="69.162.71.138" || $host=="138-71-162-69.reverse.lstn.net" &&
   $ip=="193.137.102.7" || $host=="falcon.mat.uc.pt" || $browser=="libwww-perl/5.805" &&
   $ip=="69.162.94.221" || $host=="server5.tshostez.com.br" || $browser=="OPWV-SDK/62 UP.Browser/6.2.2.1.208 (GUI) MMP/2.0" &&     
   $ip=="94.102.63.13" || $host=="94.102.63.13" || $browser=="Mozilla/4.7 (compatible; OffByOne; Windows 2000) Webster Pro V3.4"){

// Platz für Rache der Angreifer

/////////////////Sperre Ende//////////////////////
}else{

// Hauptteil der Seite

}

Ps: Als Rache habe ich mir was besonders fieses ausgedacht.

hi,

ich würde damit nicht meine Zeit verschwenden.
Denn das was Du hier erwähnst sind nicht wirklich Hackangriffe, sondern einfach nur naive Bots die versuchen über Standardtricks irgendwelche Art von Zugang zu Deiner Webseite zu erreichen.

Würdest Du da alle sperren wollen, so wäre der Quelltext Deiner Seite da irgendwann unter 0.1%, der Rest würde dann zum oberen Teil da gehören.

Solche Bots gibt es leider wie Sand am Meer, sie sind bei richtiger Programmierung an sich auch sehr harmlos, achte einfach nur darauf, richtig Eingabewerte zu filtern, zB. über regex o.Ä., eben alles, was Du selbst über PHP zu verantworten hast - um den Rest, also die Server, kümmere ich mich.

ciao

[quote=“sumatra70”]$ip=getenv("REMOTE_ADDR"); $host=gethostbyaddr($ip); $browser=$_SERVER["HTTP_USER_AGENT"]; if($ip=="69.162.71.138" || $host=="138-71-162-69.reverse.lstn.net"[/quote]
Das dürfte ziemlich unperformant sein, wenn du das bei jedem Seitenaufruf laufen lässt.

gethostbyaddr bedeutet eine (in diesem Falle völlig überflüssige) Anfrage des Servers ans DNS, das kostet einfach Zeit - Zeit, die dann auch der normale Nutzer der Seite erst mal warten muss, bis er ein Ergebnis geliefert bekommt.

Wenn du die IP 69.162.71.138 vorliegen hast, dann würde $ip=="69.162.71.138" || $host=="138-71-162-69.reverse.lstn.net" sowieso immer true ergeben, vollkommen egal, ob gethostbyaddr nun “138-71-162-69.reverse.lstn.net” oder “deine.mudda.nutzt.aol.de” geliefert hat …
Würde hier extra betont, denn das wäre nur der Fall, wenn deine Bedingung in sich stimmig wäre, aber das ist sie nicht, denn -

Davon abgesehen dürfte die Bedingung aber auch noch fehlerhaft sein, bzw. überhaupt nicht das, was du eigentlich wolltest.

if($ip=="69.162.71.138" || $host=="138-71-162-69.reverse.lstn.net" && $ip=="193.137.102.7" || ...
Die ersten beiden Werte gehören offensichtlich zusammen - dass beim zweiten die Ziffern der IP in umgekehrter Reihenfolge gelistet werden, sieht man ja sofort.
Dadurch, dass du die Oder-Verknüpfungen aber nicht geklammert hast, wird erst mal

ausgewertet.
Wenn aber die anfragende IP-Adresse “193.137.102.7” lautet, dann wird der Hostname dazu ziemlich sicher nicht138-71-162-69.reverse.lstn.net” lauten (denn der gehört ja zur anderen, erstgenannten IP) - der Teil der Abfrage ergibt also schon mal false. Und wenn dann nicht zufällig (und das müsste schon ein extrem grosser Zufall sein) eine der anderen per Oder verknüpften Bedingungen (und zwar nur eine von denen, die keine andere IP oder einen anderen Hostnamen per &&-Verknüpfung enthalten) true ergibt, dann trifft die ganze Bedingung nicht zu. Dein Code in der gezeigten Form wird also höchstvermutlich in der überwiegenden Zahl der Fälle nicht das von dir gewünschte tun, selbst wenn die anfragende IP-Adresse eine von denen ist, die du eigentlich blocken wolltest.

Für etwas, was nicht mal funktioniert, hast du jetzt also jedem Nutzer deiner Seite eine zusätzliche kleine Wartezeit aufgebrummt, die gethostbyaddr nun mal bedeutet - Glückwunsch.

Was du machst, um die Qualität deiner Seite zu verschlechtern, ist dein Ding. Aber wenn du auch noch vorschlägst, dass andere es sich bei sich auch einbauen sollen - sorry, dann kann man das nicht einfach unkommentiert so stehen lassen.

@all: Den gezeigten Code von sumatra70 bitte nicht verwenden. Er ist fehlerhaft, bewirkt nicht das versprochene, und würde trotzdem eure gesamte Seite etwas langsamer machen.

@miro:
Das dies Bots sind hat mir ein guter Kumpel auch mal erzählt. Durch deiner Aussage habe ich jetzt zumindedst Bestätigung.
Bei einer Attacke aber wurde mal ein ziemlich ausgefeiltes PHP Script an meiner Seite gehängt. Dieses sollte den ganzen Server scannen und gewisse Schreibrechte ändern, damit es gewisse Zugangsdaten auf einer unbekannten Seite kopiert. Dieses hatte auch noch mehrere Sachen drauf.

@chrisb:
Schaue dir das Script noch einmal ganz genau an und gehe dann logisch vor. Ich denke mal, das bekommst du schon hin. Vielleicht fällt dir ja auf, das dort kein Fehler vorligt und das “gethostbyaddr” doch einen guten Sinn ergibt. Und verdreht ist dort auch nichts.
Gut, vielleicht geht das auch auf andere Weise, mir aber kam diese ausreichend vor.

[quote=“sumatra70”]@chrisb:
Schaue dir das Script noch einmal ganz genau an und gehe dann logisch vor.[/quote]
Gut, dann mache du bitte das gleiche - mit mir zusammen.

&& bindet stärker als ||, da sind wir uns einig?

Dann kann man deine verknüpften Bedingungen also an den Stellen, wo || steht, auseinandernehmen, und einzeln betrachten.

var_dump($ip=="69.162.71.138"); var_dump($host=="138-71-162-69.reverse.lstn.net" && $ip=="193.137.102.7"); var_dump($host=="falcon.mat.uc.pt"); var_dump($browser=="libwww-perl/5.805" && $ip=="69.162.94.221"); var_dump($host=="server5.tshostez.com.br"); var_dump($browser=="OPWV-SDK/62 UP.Browser/6.2.2.1.208 (GUI) MMP/2.0" && $ip=="94.102.63.13"); var_dump($host=="94.102.63.13"); var_dump($browser=="Mozilla/4.7 (compatible; OffByOne; Windows 2000) Webster Pro V3.4");
Das var_dump habe ich jeweils darum herum gesetzt, damit wir als Kontrollausgabe angezeigt bekommen, was die jeweilige Teilbedingung für ein Ergebnis hat.

Jetzt nehmen wir mal folgende Beispieldaten:

$ip='193.137.102.7'; $host='falcon.mat.uc.pt';
Das, was bei $host als Wert steht ist das, was gethostbyaddr für 193.137.102.7 liefert.
Das sind also Daten, die zusammengehören, sind wir uns da auch noch einig? Wenn die IP 193.137.102.7 ist, dann liefert gethostbyaddr ‘falcon.mat.uc.pt’.

So, und was kommt jetzt raus, wenn wir obigen Code - wie gesagt, deine Bedingungen 1:1 übernommen, an den Stellen, wo du || gesetzt hast, in einzelne Bedinungen aufgetrennt - mit diesen Daten ausführen?

Das hier:

bool(false) bool(false) bool(true) bool(false) bool(false) bool(false) bool(false) bool(false)
Du siehst, nur die dritte Bedingung liefert wahr. (Da du alles mit || verknüpft hast, kommt damit am Ende immer noch das raus, was du gerne hättest.)

Aber die Bedingung, in der exakt die IP drin steht, die wir gerade überprüfen wollen -

  • die ergibt false.

Lediglich die nachfolgende Abfrage des Hostnamen,

“rettet” dich hier - die Gesamtbedingung wird immer noch wahr, so wie du es haben wolltest.

Aber erscheint dir das sinnvoll? Die Abfrage, in der du explizit die IP “193.137.102.7” eingesetzt hast, ergibt falsch - da muss dir doch eigentlich selber auch auffallen, dass die Formulierung dieser Bedingungen nicht besonders sinnvoll ist, oder?

Es liegt kein “Fehler” vor im Sinne von “das Script tut das, was der Scriptersteller wollte”. Allerdings muss dort noch das Wörtchen “zufällig” eingefügt werden.

Es liegt aber sehr wohl ein Fehler vor im Sinne von “die Bedingungen sind logisch korrekt gewählt”.

Der einizge “Sinn”, den das hier ergibt, ist der, dass es dein Script “rettet”. Durch es geht dein Script auch dann noch in den IF-Zweig, wenn die zu überprüfende IP “193.137.102.7” ist - obwohl die Bedingung, in der du diese IP überprüfst, falsch ergibt.

Dieses doppelte Gemoppel ist also nur deshalb “notwendig”, weil du die Bedingung, die die IP überprüft falsch formuliert hast - falsch dadurch, dass du sie per && mit der Bedingung $host==“138-71-162-69.reverse.lstn.net” verbunden hast, denn diese beiden werden nie gleichzeitig wahr werden.

Hättest du die Gesamtbedingung logisch und vernünftig formuliert, sprich die einzelnen Teilbedingungen mit dem passenden logischen Operator verknüpft und ggf. Klammerung von Teilausdrücken eingefügt - dann würdest du auch ohne gethostbyaddr das “richtige”, das gewünschte, Ergebnis bekommen.

Ich hoffe, das ist nun klar geworden.

Bitte versuchse dich nicht in Sarkasmus in Situationen, in denen er deinerseits komplett unangebracht ist.

Ich versuche dir hier zu erklären, wo dein Script unsinnig aufgebaut ist.
Und deine Reaktion ist mal wieder die, die ich von dir schon gewohnt bin - du zeigst dich uneinsichtig, und versuchst zu bestreiten, dass der Fehler bei dir liegt.

Ich habe schon im vorherigen Beitrag klar zu machen versucht, wo der Unsinn darin liegt - und zwar an Hand konkreter Code-Zeilen. Du könntest echt etwas hinzu lernen, wenn du das mal annimmst.
Du hingegen erklärst nicht an Hand von einzelnen Zeilen, was dein Script im einzelnen deiner Meinung nach machen soll. Ich vermute einfach deshalb, weil du es gar nicht so genau kannst.

Dass du dann aber ohne eine solche Erklärung mir sagst, ich solle es mir noch mal “genau anschauen” und “logisch vorgehen”, ist ein ziemliche Frechheit. Allerdings bin ich auch das von dir schon gewohnt.

whow, coolen kopf bewahren leute :hail: keinen streit anfangen :sunglasses: sag ich nur vorsorglich

Ich habe mich bereits vorsorglich bemüht, sachlich zu bleiben :slight_smile:

Diesmal hat sich @chrisb wirklich sachlich ausgedrückt. Ich hätte es kaum glauben wollen. :slight_smile:
Wäre dies auch bei den anderen Threads gewesen, ich glaube, wir hätten uns gut verstanden.

Also, ich wollte den Aufbau des Scriptes nicht erklären, nicht weil ich es nicht kann, sondern weil es mir bei diesem Thread nicht um das Script ging.
Das ich mein (vielleicht nicht perfektes) Script ausgestellt habe, die Situation entstand nur zufällig.

Und jetzt erst mal der Grund für “gethostbyaddr”:
Stellen wir uns mal vor, der Angriff erfolgte heute. Da ist es zwar sehr unwarscheinlich das der Selbe Angreifer mit der selben IP noch ein mal zuschlagen würde.
Also wenn diese IP dann einem anderen User zugeteilt wird, der warscheinlich auch einen anderen Provider besitzt, hat man ja zumindest schon mal den gespeicherten
Provider des Angreifers mit zum Vergleich zuhänden. Denn sollte der Angreifer, aus welchen Gründen auch immer, mit der selben IP und Hoster einen erneuten versuch anstreben,
hat man dann zumindest schon mal 2 gute Gründe, den Hoster mit zu vergleichen. Stimmt dann auch noch zufälligerweise der Browser überein, dann ist die Usersperre
doch (meiner Meinung nach) gut gelungen.
Wie aber auch schon vorher erwähnt, ist die allgemeine Warscheinlichkeit auf einer übereinstimmung aber sehr gering.
Das sollte doch aber mein Script nicht unbrauchbar machen.

Scripterklärung:
Du weist doch bestimmt, das diese Zeichen || zum vergleichen gedacht sind. Und diese && sind natürlicherweise da, um noch etwas hinzuzufügen.
Also sieht eine einzelne Reihenfolge eines vergleiches so aus:

Dieses: $ip Vergleicht mit $host Vergleicht mit $browser und
Entspr: $ip || $host || $browser && …

Gut, man könnte auch zwei == Zeichen nehmen, aber ist das bedeutend?
Man könnte auch der Übersichtlichkeit halber die Daten in jeweilige Arrays stecken.

Sollte ich bei meiner Denkweise oder Ausführung des Scriptes immer noch falsch liegen, bin ich um Aufklärung, sobald sie nicht schon erfolgt ist, natürlich sehr dankbar.
Ich hoffe, ich konnte alles gut und ausführlich erklären. :wink:

du hast aber ne menge Denkfehler drin^^
1.
[ul]Zum einen ist ein Reverse DNS frei-setzbar daher wer nen server hat könnte auch google.de als Reverse DNS setzen (das was gethostbyaddr returned)[/ul]
2.
[ul]Hoster haben eine IP Range… da heißt meine IP hat immer 84.130. und diese Gehört der Telekom bzw. gehört 1und1 die die Leitungen der Telekom nutzen. Daher bringt dein gethostbyaddr nichts. Außer du willst nen Hoster aussperren aber gute Bots die auf Servern laufen und allgemein haben nicht immer den Selben… Hoster aussperren bedeutet immer viele andere mit aus zu sperren.[/ul]
3.
[ul]Sollte man wie chrisb schon sagte zusammenhängende Bedingungen mit () umhüllen. Daher “(bla and la) or (bla2 and la2)”[/ul]

Öhm… || heißt or also oder und && heißt and also und^^
Nen Vergleich wäre == (gleich gleich) oder != (nicht gleich)
Ein ! vor einer Bedingung ist ebenfalls ein nicht^^ z.B. !(“name1” == “name2”) wäre true da name1 nicht gleich name2 ist und man nicht wollte^^ Ist doch nicht nicht klar oder?

[quote=“sumatra70”]Und jetzt erst mal der Grund für “gethostbyaddr”:
Stellen wir uns mal vor, der Angriff erfolgte heute. Da ist es zwar sehr unwarscheinlich das der Selbe Angreifer mit der selben IP noch ein mal zuschlagen würde.
Also wenn diese IP dann einem anderen User zugeteilt wird, der warscheinlich auch einen anderen Provider besitzt, hat man ja zumindest schon mal den gespeicherten
Provider des Angreifers mit zum Vergleich zuhänden.[/quote]
Die Annahme ist nicht richtig.

Die IP (fiktiv) 123.213.123.213 gehört meinetwegen zum Adressebereich der Telekom, und die hat dafür den Hostnamen 213-123-213-123.buxtehude.dtag.de definiert.
Wenn jetzt ein anderer Nutzer nach deinem Angreifer diese IP zugewiesen bekommt, dann ist der selbstverständlich auch Telekom-Kunde - denn die IP gehört nach wie vor zu dem Bereich, der der Telekom zugeordnet worden ist, daran ändert sich auf lange, lange Zeit absolut nichts (bis die Telekom vielleicht pleite geht).
Also wird die Telekom dafür sicher auch noch den gleichen Hostnamen 213-123-213-123.buxtehude.dtag.de verwenden, denn im DNS-System möchte die auch nicht alle halbe Stunde rumspielen.

Das, was du hier für ein zusätzliches Unterscheidungsmerkmal zwischen zwei verschiedenen Nutzern hältst, ist also gar keines - zwischen der IP und dem Hostnamen, den das Reverse DNS Lookup zu Tage fördert, besteht in 99,9999[insert more nines here]99% eine absolut eindeutige 1:1-Beziehung.
Ergo ist eines der beiden Merkmale absolut verzichtbar für dein Vorhaben.
Und weil die IP sowieso schon “da” ist, in den normalen Umgebungsvariablen, die zu einem Request immer zur Verfügung gestellt werden, gethostbyaddr aber noch zusätzlich etwas “kostet” (nämlich eine Anfrage ans DNS-System), sollte auch eindeutig sein, auf welches von beiden man zu Gunsten der Scriptperformance verzichtet.

Nein, hat man nicht, siehe oben.
Im Normalfall, wo der Angreifer (End-)Kunde bei einem normalen ISP ist, werden IP und Hostname immer in eindeutiger Beziehung zueinander stehen.

[quote]Stimmt dann auch noch zufälligerweise der Browser überein, dann ist die Usersperre
doch (meiner Meinung nach) gut gelungen.[/quote]
Als Bot-Programmierer nutzt man normalerweise “gängige” User-Agent-Strings - man will ja möglichst wenig “auffallen”. Vor noch zwei-drei Jahren dürften sich die meisten Bots als IE 6 auf Windows XP ausgegeben haben - heute ist die Spitze der Browsernutzung vielleicht etwas breiter gefächert, aber es werden sicher immer noch hauptsächlich UAs vorgegaukelt, die sich auch in “freier” Wildbahn häufig finden.
Die Chance, den nächsten, “unschuldigen” Nutzer einer IP (und der hat auch den gleichen Hostnamen) dann zu bestrafen, weil er zufälligerweise auch $todaysEveryBodysDarlingsBrowser verwendet, ist hoch.

(Deshalb stelle ich das Prinzip eines Loggings solcher Werte und darauf reagierender “Bestrafung” als solches und ganzes in Frage. Zumal wir hier bei den “Angriffen” über Bagatellvorfälle reden, die weder Schaden anrichten, noch juristisch irgendwie relevant wären.
Wie Miro schon schrieb, um die wirklich “bösen Buben” wird er sich schon kümmern - die fallen schon durch Logs und andere Überwachungsmechanismen auf, da braucht sich der einzelne Nutzer nicht noch selber drum kümmern. Im Gegenteil, “wenn das jeder machen würde” [5 Euro ins Phrasenschwein, OK], dann würde es sogar Performance in einem Umfang “klauen”, der anderweitig sicher besser genutzt werden könnte.)

[quote]Scripterklärung:
Du weist doch bestimmt, das diese Zeichen || zum vergleichen gedacht sind.[/quote]
Autsch.
Nein, sind sie nicht.

Sie sind ein logischer Operator, genau wie dieser

auch.

Beide sind dazu da, “etwas hinzuzufügen”, bzw. etwas technischer ausgedrückt, um zwei Bedingungen (noch genauer wäre hier: Ausdrücke) miteinander zu verknüpfen - nur auf unterschiedliche Weise, bzw. mit unterschiedlichen Ergebnissen.
(Aber eine weitere Erörterung auf diesem Basis-Level braucht es jetzt hier nicht, dazu kann jeder mal selber nachlesen, der diesbezüglich noch Verständnisprobleme hat, bspw. unter de.wikipedia.org/wiki/Aussagenlogik.)

[quote]Also sieht eine einzelne Reihenfolge eines vergleiches so aus:

Dieses: $ip Vergleicht mit $host Vergleicht mit $browser und
Entspr: $ip || $host || $browser && …[/quote]
Sorry, das ist mir jetzt schon sprachlich zu konfus, um darauf näher einzugehen.

Nein, könnte man nicht, und der Unterschied wäre ein gravierender.

Wenn du wirklich meinst, || wäre äquivalent zu ==, dann solltest du dich bzgl. Operatoren wirklich noch mal schlau machen.

Oh man, da hatte ich wohl ziehmlich viele Fehlinformationen bei der Sache.
Dank euren ausfürhrlichen Antworten (besonders @ chrisb) bin ich jetzt zumindest besser aufgeklärt. Das mit den ganzen DNS System leuchtet mir nun auch ein.
Solch ähnliches hatte ich mir schon gedacht, aber nicht in der Form. Ich war mir da auch nicht ganz sicher, weil doch die Provider immer ein ganzes Bündel an IP’s zugewiesen bekommen. Natürlich stellt mein Script dann wirklich keinen positiven Sinn dar, aus dessen Grund ich es natürlich aus all den Seiten die ich Verwalte wieder herausnehmen werde.

Nun ja, und das ich mit den || Zeichen auch falsch lag, hat mich sehr verwundert. Ich weiß gar nicht, wie ich zu der Annahme gekommen bin, das dies Vergleichszeichen darstellen sollen. Irgendwo hatte ich so etwas mal gelesen gehabt und falsch eingeprägt. Aufgrund dessen werden mir aber auch diverse Fehler bei anderen Scripten verständlich.
Nun kann ich auch die Meinung mit vertreten, das mein Script zur öffentlichen Vergabe nun völlig fehlplatziert gewesen ist. Im nachhinein ist mir das sogar auch etwas peinlich. o.0

Aber na ja, als Sprichwortgewandter Form lernt man ja wie gewöhnlich aus Fehlern.

Da kann ich mich ja beruhigt zurücklehnen und brauche mich um solche Angriffe nicht mehr zu bemühen. Dank sei der Arbeit für die Sicherheit von @miro bei bplaced.

Damit auch wirklich niemand mein fehlerhaftes Script verwendet, lösche ich den einen Satz zur verwendung wieder herraus. Ich glaube, das ist im nachhinein noch möglich.

Also, danke noch einmal für die sehr ausführlichen Erklärungen.

hi,

wie ich bereits sagte, sollte es bei sonst vernünftiger Programmierung, reichen, alle Eingabewerte von Benutzern einfach nur zu filtern, zB. nicht x-beliebige Zeichenfolgen für eine eMail-Adresse zuzulassen oder Ähnliches; den Rest übernimmt bplaced, solche Blockaden wie Du sie als Beispiel gegeben hast, sind grundsätzlich schon unnötig und machen unverhältnismäßig viel Arbeit, denn solche Bots gibt es wie Sand am Meer und die sind einfach nur lästig, mehr auch nicht.

ciao

Noch was zu den Bots^^ Hier ma nen kleiner Auszug aus der Log meines Servers
[size=85](Ich weiß XAMPP :stuck_out_tongue: Allerdings ists nen Windoof Server daher egal^^ Nem Linux würd ichs auch net antun und alles schön selber reinhauen :wink:)[/size]

[Mon Sep 14 18:10:08 2009] [error] [client 96.56.27.162] script 'C:/xampp/htdocs/read_dump.php' not found or unable to stat [Mon Sep 14 18:10:08 2009] [error] [client 96.56.27.162] script 'C:/xampp/phpMyAdmin/read_dump.php' not found or unable to stat [Mon Sep 14 18:10:09 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin0 [Mon Sep 14 18:10:09 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin1 [Mon Sep 14 18:10:09 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin2 [Mon Sep 14 18:10:09 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.2.0 [Mon Sep 14 18:10:10 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.2.1 [Mon Sep 14 18:10:10 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.2.2 [Mon Sep 14 18:10:10 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpMyAdmin-2.2.3 [Mon Sep 14 18:10:11 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.2.3-rc1 [Mon Sep 14 18:10:11 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.2.4 [Mon Sep 14 18:10:11 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.2.4-rc1 [Mon Sep 14 18:10:11 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.2.5 [Mon Sep 14 18:10:15 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.2.5-rc1 [Mon Sep 14 18:10:15 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpMyAdmin-2.2.6 [Mon Sep 14 18:10:15 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.2.7 [Mon Sep 14 18:10:15 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.2.7-pl1 [Mon Sep 14 18:10:16 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.3.0 [Mon Sep 14 18:10:16 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.3.0-rc4 [Mon Sep 14 18:10:17 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.3.1 [Mon Sep 14 18:10:17 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.3.1-rc1 [Mon Sep 14 18:10:17 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.3.2 [Mon Sep 14 18:10:18 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.3.3 [Mon Sep 14 18:10:18 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.3.3-rc1 [Mon Sep 14 18:10:18 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.3.4 [Mon Sep 14 18:10:19 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.3.4-rc1 [Mon Sep 14 18:10:19 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.3.4-rc3 [Mon Sep 14 18:10:19 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.3.5 [Mon Sep 14 18:10:20 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.3.5-rc1 [Mon Sep 14 18:10:20 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.3.5-rc3 [Mon Sep 14 18:10:26 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpMyAdmin-2.5.1 [Mon Sep 14 18:10:26 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpMyAdmin-2.5.4 [Mon Sep 14 18:10:26 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.5.5-rc1 [Mon Sep 14 18:10:27 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.5.5-rc2 [Mon Sep 14 18:10:27 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.5.5 [Mon Sep 14 18:10:27 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.5.5-pl1 [Mon Sep 14 18:10:28 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpMyAdmin-2.5.6 [Mon Sep 14 18:10:28 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.5.6-rc1 [Mon Sep 14 18:10:28 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.5.6-rc2 [Mon Sep 14 18:10:29 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.5.7 [Mon Sep 14 18:10:32 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.5.7-pl1 [Mon Sep 14 18:10:32 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.0-rc1 [Mon Sep 14 18:10:33 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.0-rc2 [Mon Sep 14 18:10:33 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.0-rc3 [Mon Sep 14 18:10:34 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.0 [Mon Sep 14 18:10:34 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.0-pl1 [Mon Sep 14 18:10:35 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.0-pl2 [Mon Sep 14 18:10:35 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.0-pl3 [Mon Sep 14 18:10:36 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.1-rc1 [Mon Sep 14 18:10:36 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.1-rc2 [Mon Sep 14 18:10:36 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.1 [Mon Sep 14 18:10:37 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.1-pl1 [Mon Sep 14 18:10:37 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.1-pl2 [Mon Sep 14 18:10:41 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.1-pl3 [Mon Sep 14 18:10:41 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.2-rc1 [Mon Sep 14 18:10:41 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.2-rc1 [Mon Sep 14 18:10:42 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.2 [Mon Sep 14 18:10:42 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.2-pl1 [Mon Sep 14 18:10:43 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.3 [Mon Sep 14 18:10:43 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.3-rc1 [Mon Sep 14 18:10:43 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.3 [Mon Sep 14 18:10:44 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.3-pl1 [Mon Sep 14 18:10:44 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.4 [Mon Sep 14 18:10:44 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.4-rc1 [Mon Sep 14 18:10:45 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.4-pl1 [Mon Sep 14 18:10:45 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.4-pl2 [Mon Sep 14 18:10:46 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.4-pl3 [Mon Sep 14 18:10:46 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.6.4-pl4 [Mon Sep 14 18:10:46 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin 2.7.0 [Mon Sep 14 18:10:47 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin 2.7.0-rc1 [Mon Sep 14 18:10:47 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin 2.7.0-pl1 [Mon Sep 14 18:10:48 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.8.0 [Mon Sep 14 18:10:48 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.8.1-rc1 [Mon Sep 14 18:10:49 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.8.1 [Mon Sep 14 18:10:49 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.8.2 [Mon Sep 14 18:10:49 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.11.1 [Mon Sep 14 18:10:49 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/phpmyadmin-2.11.2 [Mon Sep 14 18:10:50 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/pma [Mon Sep 14 18:10:50 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/pma2000 [Mon Sep 14 18:10:50 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/pma2007 [Mon Sep 14 18:10:51 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/pma2008 [Mon Sep 14 18:10:51 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/mysql [Mon Sep 14 18:10:52 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/my-sql [Mon Sep 14 18:10:52 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/sql [Mon Sep 14 18:10:52 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/php [Mon Sep 14 18:10:53 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/help [Mon Sep 14 18:10:53 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/utilities [Mon Sep 14 18:10:54 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/cms [Mon Sep 14 18:10:54 2009] [error] [client 96.56.27.162] File does not exist: C:/xampp/htdocs/mysql [Mon Sep 14 18:23:07 2009] [error] [client 92.200.198.95] File does not exist: C:/xampp/htdocs/favicon.ico [Mon Sep 14 18:23:10 2009] [error] [client 92.200.198.95] File does not exist: C:/xampp/htdocs/favicon.ico [Mon Sep 14 18:30:22 2009] [error] [client 77.221.132.18] script 'C:/xampp/htdocs/file_manager.php' not found or unable to stat [Mon Sep 14 18:30:23 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/admin [Mon Sep 14 18:30:23 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/catalog [Mon Sep 14 18:30:23 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/shop [Mon Sep 14 18:30:23 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/onlineshop [Mon Sep 14 18:30:23 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/store [Mon Sep 14 18:30:23 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/cart [Mon Sep 14 18:30:23 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/boutique [Mon Sep 14 18:30:23 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/oscommerce [Mon Sep 14 18:30:23 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/osc [Mon Sep 14 18:30:23 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/catalog1 [Mon Sep 14 18:30:24 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/shop1 [Mon Sep 14 18:30:24 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/oscommerce1 [Mon Sep 14 18:30:24 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/osc1 [Mon Sep 14 18:30:24 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/boutique1 [Mon Sep 14 18:30:24 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/cart1 [Mon Sep 14 18:30:24 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/store1 [Mon Sep 14 18:30:24 2009] [error] [client 77.221.132.18] File does not exist: C:/xampp/htdocs/onlineshop1

hmm^^ lol^^
Dein Beitrag enthält 67819 Zeichen. Es sind maximal 60000 Zeichen erlaubt.