Ankündigung

Einklappen
Keine Ankündigung bisher.

Seitenaufruf nach Zeit beschränken

Einklappen

Neue Werbung 2019

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

  • Seitenaufruf nach Zeit beschränken

    Moin,
    ich hab da ein Problem, und zwar möchte ich den Zugriff für user beschränken.
    Beim Aufrufen der seite werden per get einige sachen in eine datenbank eingetragen. Nun soll es aber nur möglich sein maximal jede minute die daten zu schreiben.

    Ich dachte erst daran die ip zu speichern mit der letzten zeit.
    Das gibt aber zb dann probleme wenn mehrere user hinter dem selben router sitzen und ich nur die router ip bekomme.

    Dann dachte ich daran die mac zu speichern, schlägt aber bei meinen tests fehl.

    Es ist nicht möglich dem user ein cookie zu verpassen.

    Jemand eine idee dazu ?

    -Sven-


  • #2
    session verwenden , dann speicherst du in der Session den Timestamp der letzten Eintragung - bis zur nächsten müssen 60 Sekunden vergangen sein .

    PHP-Code:
    <?PHP
    session_start
    ();
    if ((isset(
    $_SESSION['zeitstempel']) AND time()-$_SESSION['zeitstempel']>59)) OR 
       !isset(
    $_SESSION['zeitstempel'])) {
       
    $_SESSION['zeitstempel']=time();
      ...
    // Eintragung machen
    }
    else
       echo 
    "Zu früh!<br>";
    *kicher*
    auch Sven ^^
    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

    Kommentar


    • #3
      Zitat von lano Beitrag anzeigen
      Es ist nicht möglich dem user ein cookie zu verpassen.
      Dann hast du auch mit Sessions ein Problem.

      Trag einfach wenn ein User Daten einträgt den Zeitstempel mit in die Datenbank ein und prüfe bevor du einen neuen Datensatz einträgst mit einem SELECT Befehl ob für User XYZ ein Datensatz existiert der neuer ist als jetzt-60 Sekunden.
      "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

      Kommentar


      • #4
        Kann denn jeder die Daten per get übertragen? Oder nur registrierte User die in der Datenbank vorhanden sind?

        PS: Warum keine Kekse?

        Kommentar


        • #5
          Kann denn jeder die Daten per get übertragen?
          Ja jeder der die seite kennt kann ohne sich zu regestrieren daten speichern.
          im Endeffekt soll ein Programm das machen, da ist der quelltext aber openSource, somit kann jeder nachvollziehen wie die daten in die tabelle kommen und ggf auch manipulieren

          Kommentar


          • #6
            Zitat von lano Beitrag anzeigen
            Ja jeder der die seite kennt kann ohne sich zu regestrieren daten speichern.
            im Endeffekt soll ein Programm das machen, da ist der quelltext aber openSource, somit kann jeder nachvollziehen wie die daten in die tabelle kommen und ggf auch manipulieren
            Dann wirst du kaum eine eindeutige Identifizierung hinbekommen wenn nicht einmal ein Login notwendig ist.
            "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

            Kommentar


            • #7
              und die SESSION ist nach dem schließen des browsers weg ... also bringt das nix ...
              PHP-Code:
              if ( $humans >= ) {
                 
              war ();

              Kommentar


              • #8
                Zurück zur sessions idee,
                ich könnte serverseitig einen key erzeugen und den dann beim ersten aufruf an den client senden, das erste mal wenn der client die daten sendet ohne key verwerfe ich die daten. den key könnt man mit prüfsummen versehn das man ihn -ohne wissen- nicht nachbauen kann.
                ggf könnt man vor dem ersten daten senden quasie ein get_key einbauen um einen key zu bekommen.
                Das Programm läuft auf dem client 24/7 und sendet alle 60 sec die daten.

                aber, jetzt könnt man das programm ja tausendfach starten und es würden tausend keys erzeugt werden die ja alle gültig sind und hätte so innerhalb von minuten die datenbank gefloodet.

                Hmm, so wirklich scheint das nicht zu funktionieren.
                werd nochmal ne nacht drüber schlafen müssen...
                Eine voherige regestrierung mit username und passwd will ich auf jedenfall vermeiden.

                danke erstmal bis dahin -Sven-

                *kicher*
                auch Sven ^^
                namensgleichheit bei dem Namen ist schon selten, verwechseln die Leute deinen Namen auch immer mit Jens ?

                Kommentar


                • #9
                  Du könntest versuchen einen Fingerprint des Browser zu erstellen. Also User-Agent, Javascript-Einstellungen etc. auslesen. Scheinbar bekommt man das ganz gut hin:
                  http://panopticlick.eff.org/
                  Your browser fingerprint appears to be unique among the 1,170,592 tested so far.

                  Kommentar


                  • #10
                    Was spricht denn jetzt gegen einen Cookie?

                    Mir fiel gerade noch das Stichwort Local Storage ein, das man eigentlich nur im Zs.hang mit HTML5 kennt. Keine Ahnung, von welchen Browsern und unter welchen Doctypes das tatsächlich unterstützt wird.
                    Es ist schon alles gesagt. Nur noch nicht von allen.

                    Kommentar


                    • #11
                      Zitat von lano Beitrag anzeigen
                      Zurück zur sessions idee,
                      ich könnte serverseitig [...]
                      Das braucht man nicht selber basteln - sondern das ist in etwa das, was der Default-Sessionmechanismus von PHP schon frei Haus bietet.

                      Kommentar


                      • #12
                        im Endeffekt soll ein Programm das machen, da ist der quelltext aber openSource, somit kann jeder nachvollziehen wie die daten in die tabelle kommen und ggf auch manipulieren
                        Was genau hast du eigentlich vor?

                        Sessions gehen nicht weil die ID immer neu erzeugt werden kann.

                        Cookies gehen nicht. Warum sagtest du nicht...

                        Registrierung willst du nicht.

                        IP "Sperre" willst du nicht.

                        Was für ein "Programm" ruft das PHP Script auf? Wird es gar nicht von einem Anwender via Browser aufgerufen? Das bietet ggf. andere Möglichkeiten... eine Desktopanwendung kann ggf. die MAC-Adresse lesen, oder Daten auf der Festplatte ablegen die das ermöglichen was du willst, oder eben einen 100%ig eindeutigen User-Agent senden oder oder oder.

                        PHP Seitig ist das mit deinen Anforderungen jedenfalls nicht zu schaffen (warum siehe die Ausschlusskriterien oben)
                        "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                        Kommentar


                        • #13
                          Was genau hast du eigentlich vor?
                          Ich hab ein kleines Programm in c geschrieben was auf einem linux system per wget eine url aufruft. In der url werden ein paar daten übertragen die dann vom aufgerufenen php script in eine datenbank geschrieben werden.
                          Das kleine Programm möcht ich gern unter der GPL veröffentlichen.
                          Dieses Programm soll der ermittlung von einschaltquoten dienen, dazu kopiert man es einfach auf eine Dbox, Dreambox,...
                          Das programm macht im moment nichts anderes als den aktuelen tv kanal abzufragen, die mac Adresse auszulesen und beides an das php script zu senden.

                          Nun besteht allerdings die möglichkeit das Programm dahingehen zu verändern das es selbst mac adressen und programm id generiert und an den server sendet und somit die tv quote beeinflusst.

                          Cookies gehen nicht. Warum sagtest du nicht...
                          Das cookie würde ja auf dem client gespeichert und bietet so wieder eine möglichkeit zur manipulation. vllt seh ich das grade falsch, muss ich nochmal drüber nachdenken.

                          Registrierung willst du nicht.
                          Richtig, einzigster grund, ich finde es recht user unfreundlich.
                          Es gibt schon genug seiten auf denen man sich registrieren muss.

                          IP "Sperre" willst du nicht.
                          IP sperren halte ich für nicht machbar. Angenommen jemand hat 2 Boxen die über den selben internet anschluss senden, ich bekomme nur die ip des routers, damit fällt schonmal eine box weg.

                          Wird es gar nicht von einem Anwender via Browser aufgerufen?
                          Wie oben erwähnt, Nein es wird nicht von einem Browser aufgerufen.

                          eine Desktopanwendung kann ggf. die MAC-Adresse lesen
                          Wie oben erwähnt, könnte man die manipulieren.

                          Daten auf der Festplatte ablegen
                          Auch die könnte man dann ohne probleme auslesen.

                          einen 100%ig eindeutigen User-Agent
                          Das wäre mit wget schon möglich, das wie stände aber wieder gut lesbar im quelltext.

                          PHP Seitig ist das mit deinen Anforderungen jedenfalls nicht zu schaffen
                          Eine kombination aus allem

                          Ich glaub ihr habt mich aber schon auf eine möglichkeit gebracht.
                          Werd das mal versuchen, aber erstmal ins bett

                          so denn -Sven-

                          Kommentar


                          • #14
                            Na mit den Infos lässt sich jetzt doch schonmal arbeiten.

                            Aber am sinnvollsten ist immernoch eine Registrierung der Boxen. Denn wenn dein C Programm OpenSource sein soll lässt sich so ziemlich alles manipulieren was nicht serverseitig gegengeprüft werden kann (wie z.B. die MAC-Adresse).
                            "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                            Kommentar

                            Lädt...
                            X