IP Zeit Sperre

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

  • IP Zeit Sperre

    Hallo Leute.

    Ich bin gerade dabei, ein Script zu basteln, was verhindert das ein Mailscript als Spamversender genutzt wird.

    Dafür will ich einstellen, das man nur jede Stunde eine Mail senden kann.

    Um dies zu verwirklichen, habe ich in den Teil, der Den Text ausgibt, Die Mail wurde versand (in diesen Falle muss ja alles funktioniert haben)
    den Code
    PHP-Code:
    $_SESSION['IP'] = $_SERVER['REMOTE_ADDR']; 
    eingefügt.
    Nun habe ich um das eigentliche Kontaktformular eine Abfrage gebaut die kontrolliert ob dieser User schon gesendet hat.
    dafür habe ich folgendes script
    PHP-Code:
     if($_SESSION['IP'] != $_SERVER['REMOTE_ADDR']) {
         
    // Hier das Kontaktformular
    } else {
       echo 
    "es darf nur eine Mail pro Stunde gesendet werden! bitte
     gedulden sie sich!\n"

    Soweit ich aber feststellen kann, bleibt die IP aber dauerhaft in der Session. Wie kann ich nun einstellen, dass sie nach einer belibigen Zeit in diesen Falle einer Stunde wieder verschwindet?
    Webdesign und Webentwicklung - Plunix.de

  • #2
    Re: IP Zeit Sperre

    Na ja, wenn du dich auf den Eintragszeitpunkt beziehen willst, dann solltest du dir den vielleicht auch irgendwo merken ...


    Aber was willst du da überhaupt mit (standardmäßigen) Sessions anfangen? Da sorge ich mal fix dafür, dass ich 'ne neue Session-ID bekomme - und womit vergleichst du dann bitte meine IP ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Mhh habe das script noch nicht getestet. war jetzt kurz als frage.

      Zum Thema neue Session ID, das könnte schwer werden, da ich gar keine Session ID erstellen lasse :P

      Dies ist als Kontaktformular auf eienr Seite gedacht. Damit ein Postkasten nicht zugespammt wird. In diesen Falle meiner, da die Mails momentan noch an mich gehen.

      Gibt es denn andere Möglichkeiten um zu verhindern dass das Kontakt formular missbraucht wird, wenn keine id erstellt wirt?
      Webdesign und Webentwicklung - Plunix.de

      Kommentar


      • #4
        @lennie
        Stichwort Proxy/NAT --> ein und dieselbe IP kann durchaus von mehreren Usern benutzt werden.
        Also ich würde das nicht aussschliesslich auf IP Basis machen

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Naja das habe ich jetzt auch mitbekommen. Welche Methoden gibt es denn, um einen Gast eine wirksame zeitsperre zu erteilen?
          Webdesign und Webentwicklung - Plunix.de

          Kommentar


          • #6
            Original geschrieben von Lennie
            Zum Thema neue Session ID, das könnte schwer werden, da ich gar keine Session ID erstellen lasse :P
            Und wie willst du dann die "gespeicherten" IPs wieder aus einer Session auslesen, wenn du gar keine erstellst ...?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Welche Methoden gibt es denn, um einen Gast eine wirksame zeitsperre zu erteilen?
              Wirksam weil nicht zu umgehen --> keine
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                OffTopic:
                Naja da keine Antwort kommt habe ich mal die Suchfunktion genutzt.
                Muss aber mal loben, heute hier mal schön und höflich behandelt worden. Heute irgendeinfestag? naja aber im ernst. so macht es doch gleich mehr spass dieses forum mit fragen zu belasten Vielleicht finde ich ja heute noch welche


                Ich Habe nicht unbedingt passende Varianten gefunden, aber mir jetzt aus den Ideen was zusammengesucht, leider ist es wieder IP abhängig und noch etwas beta.

                1. Bei Korrekt abgesendeter Mail wird die IP des Gastes und die Aktuelle Zeit in eine SQL Tabelle geschrieben.
                2. Beim Eigentlichen Script wird die IP des Gastes geprüft, ob schon ein
                Eintrag mit dieser IP besteht, wenn nicht, wird das Formular angezeugt.
                Wenn ja, wird die Differenz zwischen dem Derzeitigen Zeitpunkt und dem in der Datenbank in variablen gespeichert. Mit einer kleinen Kontrolle mit Größer oder Kleiner als, wird nun kontrolliert, ob die Stunde schon zuende ist, oder nicht.
                3. Wenn die Stunde noch nicht zuende Sein sollte wird eine Fehlermeldung angezeigt. Ansonsten nicht!


                Nun sind abe noch 2 Punkte zu klären.

                1. Möglicherweise nimmt die Datenbank eine ziemliche größe an.
                Gibt es eine Möglichkeit die Spaltenanzahl auf ein maximum zu beschränken? Sollte dies überschritten werden, wird die jeweils kleinste id überschriben?

                2. Was macht man, wenn tatsächlich 2 Personen unter einen Internetanschluss eine Mail schreiben wollten?
                Webdesign und Webentwicklung - Plunix.de

                Kommentar


                • #9
                  Was macht man, wenn tatsächlich 2 Personen unter einen Internetanschluss eine Mail schreiben wollten?
                  Keine Sperre die auf IP basiert
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    Coockies sind Löschbar, der Chache ist leerbar, IP's können von mehreren Genutzt werden. Wäre es nicht mal an der Zeit, dafür ein entgültiges Merkmal in die Zukünftigen Betriebssysteme einzusetzen, die nicht zu verfälschen sind, und von seiten des servers auslesbar?

                    Frage 1 hat keine Antwort?
                    Webdesign und Webentwicklung - Plunix.de

                    Kommentar


                    • #11
                      Original geschrieben von Lennie
                      1. Möglicherweise nimmt die Datenbank eine ziemliche größe an.
                      Gibt es eine Möglichkeit die Spaltenanzahl auf ein maximum zu beschränken? Sollte dies überschritten werden, wird die jeweils kleinste id überschriben?

                      2. Was macht man, wenn tatsächlich 2 Personen unter einen Internetanschluss eine Mail schreiben wollten?
                      zu 1) ich würde da nicht noch eine extra id vergeben, also nur ip und timestamp. dann kannst du bei der überprüfung erstmal alle einträge löschen, die älter als ne stunde sind.

                      zu 2) beste und sichere möglichkeit: die benutzer müssen sich einloggen.
                      wenn du das nicht möchtest, dann gibt es keine wirklich sichere methode.

                      du könntest zusätzlich mit cookies arbeiten, versuchen, die ip auch hinter einem proxy herauszubekommen (hier im forum hab ich dazu mal eine gute funktion gefunden)...etc.

                      Kommentar


                      • #12
                        Sag doch bite stichwort womit ich das forum nach dieser funktion durchsuchen kann.

                        Zu 1. Die iDee ist nich schlecht, mache aber einen extra Punkt zum Löschen dieser ID's in den Admin bereich. Der Aufgerufen werden kann, sollte die tabelle 100 id's übersteigen dann wird es beim login gelöscht ansonsten manuel über den Adminpunkt.
                        Das hat den vorteil das der User beim Formularaufruf nicht von der Ladezeit des Löschvorgangs genervt wird.
                        Webdesign und Webentwicklung - Plunix.de

                        Kommentar


                        • #13
                          Original geschrieben von Lennie
                          Sag doch bite stichwort womit ich das forum nach dieser funktion durchsuchen kann.
                          habs selbst kaum wiedergefunden. hier: http://www.php-resource.de/forum/sho...?threadid=7474

                          Das hat den vorteil das der User beim Formularaufruf nicht von der Ladezeit des Löschvorgangs genervt wird.
                          dauern bei dir die db-abfragen so lange?
                          du kannst auch bei der überprüfung abfragen "WHERE timestamp größer zeit - stunde"

                          Kommentar


                          • #14
                            Db abfragen nicht aber bei 400 die vor dem anzeuigen des eigentlichen scriptes gelöscht werden müssen, könnte ich mir vorstellen das das doch ein bisschen dauert oder?
                            Webdesign und Webentwicklung - Plunix.de

                            Kommentar


                            • #15
                              Dann erzeug doch erst die Ausgabe, schick sie zum Client - und lösche dann.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X