Ankündigung

Einklappen
Keine Ankündigung bisher.

IP-Sperre

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • IP-Sperre

    Hallo

    Hat schon mal wer eine IP-Sperre programmiert?

    Ich weiß, dass die meisten User bei jedem Internet-Login eine neue IP-Adresse bekommen. Ich weiß auch, dass man IPs über anonymisierende Proxys verschleiern kann. Trotzdem würde ich gerne so eine IP-Sperre programmieren.

    Lt. einem älteren heise.de-Bericht verwenden die Spamer nicht bei jedem Spam eine neue IP-Adresse. Bei einem ganz konkreten Test soll das bei 2/3 aller Spams der Fall gewesen sein. Es kann also anscheinend schon Sinn machen, eine IP-Sperre zu haben.

    Allerdings frage ich mich, wie man so etwas programmiert.
    Meine Überlegungen:

    Es sollte die Möglichkeit geben, zwischen einer festen und einer temporären Sperre zu unterscheiden.

    Tabelle ip_blacklist:
    ip VARCHAR(39) UNIQUE NOT NULL
    stamp DateTime NOT NULL
    hours int unsigned

    In stamp steht, wann man die IP-Adresse in die Tabelle eingetragen hat.
    Bei hours=null handelt es sich um eine feste Sperre.

    In PHP schaue ich dann sowohl bei der Registrierung als auch beim Login die IP-Adresse des Users an und vergleiche sie mit den Einträgen in der Datenbank.

    Sind temporäre Sperren veraltet, lösche ich sie aus der Tabelle ip_blacklist.

    Macht das Sinn? Macht man das so?

  • #2
    nicht beim login, sondern generell bei Seitenaufrufen. Sonst bannst du jemanden und er kann weitermachen, bis seine Session abgelaufen ist.

    Kommentar


    • #3
      PHP ist die falsche Schicht, sonst hast du ja trotzdem den Ressourcenverbrauch.

      Erstell eine htaccess-Datei und sperr die IPs, die eben keinen Zugriff haben sollen. Dein Arbeitsaufwand liegt quasi bei 0.

      Kommentar


      • #4
        @zwutz
        generell bei Seitenaufrufen
        Ok, dann folgende Variante:

        IP-Adresse wird mitprotokolliert bei:
        - Registrierung
        - Login
        - allen Seiten, die nur Mitgliedern zugänglich sind (d. h. wo man eingeloggt sein muss)

        Zum Admin:

        Der muss die Möglichkeit haben, schnell auf Spams zu reagieren.

        Meldet also ein User ein Span, könnte beim Admin ein Fenster aufpoppen. D. h. beim Admin läuft ein JavaScript-Programm, das per AJAX immer wieder irgendeine DB-Tabelle abfragt. Ist dort ein neuer Eintrag, wird das dann dem Admin über das Popup-Fenster angezeigt.

        In dem Popup-Fenster steht nur eine allgemeine Info, das es ein neues Spam gibt. Darin ein Link. Klickt der Admin den Link an, kommt er dortin, wo er sich den Eintrag, der als Spam gemeldet wurde, anschauen kann.

        Irgendwo steht dann auch die IP-Adresse des Users, der für den Spam verantwortlich ist. Diese IP-Adresse kann der Admin anklicken. Er kommt dann auf eine Seite, wo er mit dieser IP-Adresse irgendetwas machen kann. Z. B. in die Tabelle ip_blacklist eintragen.

        Zum User:

        Bei jeder Aktion wird die Tabelle ip_blacklist kontrolliert. Befindet sich seine IP-Adresse in dieser Tabelle, wird der User automatisch ausgeloggt und zur login-Seite weitergeleitet. Dort steht dann die Info, dass seine IP-Adresse aufgrund des von einem User gemeldeten Spams von einem Admin gesperrt wurde. Sofern die Sperrung nur temporär ist, steht auch dabei, für wie lange diese IP gesperrt ist.

        Ist das OK so?

        @Chriz
        Erstell eine htaccess-Datei und sperr die IPs, die eben keinen Zugriff haben sollen.
        Dann kann ich aber keine temporären Sperren machen, oder?

        Kommentar


        • #5
          Zitat von coola Beitrag anzeigen
          @Chriz

          Dann kann ich aber keine temporären Sperren machen, oder?
          http://www.askapache.com/htaccess/ti...cond-time.html

          Habs aber noch nie ausprobiert.

          Kommentar


          • #6
            .htaccess sind für sowas ebenfalls die falsche Ebene. Wenn Du IPs aussperren möchtest, dann musst Du auf die TCP/IP-Ebene runter. Auf gängigen Hosts also Richtung iptables schauen. Die Regeln können ja durchaus durch PHP generiert werden - z.B. in einem Cronjob.

            Auch ein HTTP-Dienst verbraucht sonst unnütz Ressourcen und auch den kann man mit File-Upload-Bomben beschmeißen...

            Zumindest gilt das oben gesagte, wenn es wirklich um den Ressourcenverbrauch, also um einen DOS-Attacken-Schutz geht. Ansonsten kann man das ganze natürlich durchaus in PHP machen, zumindest wenn es wirklich nur um einen Spamschutz geht. In dem Fall ginge es ja nur darum, eine Formularverarbeitung rechtzeitig zu unterbrechen.

            Das richtige Mittel der Wahl hängt halt am ehesten vom Angriffszenario ab, gegen das man sich schützen möchte.

            Gruß Jens

            Kommentar


            • #7
              Hab jetzt nur deinen ersten Satz gelesen, und die anderen Posts nicht (sry habs eilig), aber ich kann dir mal kurz einen Script aushändigen:

              PHP-Code:
              $userIP $_SERVER['REMOTE_ADDR'];

              $aUserIP explode("."$userIP);

              $banned false;

              $bannedIP = array();

              $bannedIP[] = "11.22.33.44"//  Eine IP
              $bannedIP[] = "11.2.34.6"//  Eine andere IP


              foreach($bannedIP as $ip){

                
              $aBanIP explode("."$ip);

                 for(
              $i 0$i 4$i++){

                  if((
              $aBanIP[$i] == $aUserIP[$i]) or $aBanIP[$i] == "*"){

                    
              $countPart++;

                  }

                }

               if(
              $countPart >= 4){

               
              $banned true;

                }

                
              $countPart 0;

              }
              if(
              $banned){

                echo 
              "Sie dürfen diese Seite leider nicht betreten.";

                exit;



              Das Problem ist, du musst diesen Script in deine Date: "index.php" einbauen, und wenn du eine IP bannen möchtest, musst du zuerst die Datei öffnen und die IP da reinschreiben.

              Ich hab da auch mal einen Script erstellt, bei dem du übers CMS (Oder irgendeine Date) die IP eingeben kannst, und die dann automatisch gebannt wird...

              Hoffe konnte helfen

              Kommentar


              • #8
                Mit der technischen Umsetzung habe ich eigentlich kaum noch Probleme. Ich bekomme fast alles irgendwie hin, sofern das nicht etwas ganz Spezielles ist (Wurde z. B. hier im Forum irgendwann mal gefragt, ob ich eine Suchmaschine für Videos machen könnte. Also da bin ich völlig planlos). Beim Optimieren brauche ich manchmal etwas Hilfe.

                Mein großes Problem ist meistens, wie die richtige Strategie ist, wie die Abläufe aussehen müssen. Da fehlt mir noch die Erfahrung. Im Eintrag #4 habe ich z. B. so einen möglichen Ablauf versucht zu formulieren. Von der Meldung eines Spams bis zum Festhalten der IP-Adresse. Aber ich weiß nicht, ob das die richtige Vorgehensweise ist.

                Kommentar


                • #9
                  IP Sperren sind sinnvoll bei DoS Attacken, wie aber schon geschildert -> iptable > All, wenn du IPs den dienst deiner Anwendung untersagen willst dann per apache:

                  IP Block
                  Code:
                  allow from all
                  deny from x.x.x.x
                  IP Allowance
                  Code:
                  deny from all
                  allow from x.x.x.x
                  Bei größeren Sperr-Vorhaben kann auch nach anderen Regeln gebannt werden als per IP, bspw. Domain, User Agent, Ursprungs-Ort, Subnet, Request-Typ.

                  IP-Sperren innerhalb PHP zu realisieren wäre nur dann sinnvoll wenn du per IP entscheiden willst ob bspw. ein User mit einer bestimmten IP bestimmte Funktionen auf deiner Webseite nutzen darf. Bspw. Kommentieren von News / Artikel, Registrieren, usw.

                  Du musst ihm ja nicht gleich den Saft abdrehen nur weil er Links zu hübschen Frauen gepostet hat..

                  Kommentar


                  • #10
                    Zitat von tr0y Beitrag anzeigen
                    Du musst ihm ja nicht gleich den Saft abdrehen nur weil er Links zu hübschen Frauen gepostet hat..
                    Wenn die denn mal hübsch wären... XD

                    Kommentar

                    Lädt...
                    X