Ergebnis 1 bis 10 von 12

Thema: JavaScript: Besuchertausch Framebrechersicher Popup, NoPopup + Restart Popup Version

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Avatar von Worka
    Registriert seit
    21.05.2007
    Beiträge
    973

    JavaScript: Besuchertausch Framebrechersicher Popup, NoPopup + Restart Popup Version

    Hallo
    Hier mein Code zum absichern eines Besuchertauschers gegen Framebrecher und gegen hängenbleiben. (Test auf Hängenbleiben nur in Version 1)

    Bitte beachten: Ich habe es lokal getestet, habe aber keine Seite wo ich es online testen kann.
    Weitere Infos unten.

    Das Script:

    1. Version mit Popup.

    1. StartBT.htm (Diese Seite im Browser laden)
    Öffne diese Datei im Brower um das Script zu starten. In einem echten BT müsste der Code auf der Seite eingebaut werden, von der aus man BT aufruft.
    Will man den direkten Aufruf des BT erlauben (z.B. aus den Lesezeichen), so muss man eine Startseite machen, die per JavaScript den BT nach Aufruf startet. (Punkt 6)

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Besuchertausch starten</title>
    
    <script type="text/javascript">
    
    function StartBT () {
    window.open("Kontroll_Popup.htm", "Framebrecher Meldung", "width=10, height=10");
    }
    
    </script>
    
    </head>
    <body;>
    
    </body>
    Besuchertausch <a href="" 
    onClick="StartBT();">Starten</a>
    </html>
    2. Frameset.htm
    Das Frameset. In einem echten Besuchertauscher wäre das das Dokument welches sich hinter der SurfURL verbirgt.
    Es lädt einen oberen Frame (Vergütungsframe) und einen unteren (Werbung).

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
       "http://www.w3.org/TR/html4/frameset.dtd">
    <html>
    
    <head>
    <title>Frameset</title>
    
    <frameset rows="300,*">
      <frame src="Vergütung.htm" name="ab"> 
      <frame src="ad.htm" name="werbung">
    </frameset>
    
    </head>
    
    <body>
    ...
    </body>
    
    </html>
    3. Vergütung.htm
    Der Vergütungsframe. Hier einfach nur ein Dokument ohne jede Funktion.

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Vergütungsframe</title>
    </head>
    
    <body>
    Ich bin der Vergütungsframe
    </body>
    </html>
    4. Ad.htm
    Der Framebrecher. Er wird im unteren Frame des Frameset geladen.

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Framebrecher</title>
    <script type="text/javascript">
    if (top != self) {
        top.location = self.location;
    }
    </script>
    </head>
    <body bgcolor="#000000" text="#FFFFFF">
    
    <h1>Framebrecher</h1>
    
    </body>
    </html>
    5. Kontroll_Popup.htm
    Dieses Popup enthält den Framebrecher test und den Test ob der BT gestoppt hat. Verweilt der BT länger als 200 Sekunden auf der selben WerbeKampange, so lädt er erneut.

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Kontroll Popup</title>
    
    
    
    <script type="text/javascript">
    //Variablen
    //Austauschen gegen SurfURL des Besuchertauschers
    var FramesetURL="Frameset.htm";
    //----------------------------------------------------
    var Counter;
    var wegcount;
    var win;
    var Restartcount=0;
    var StopCount;
    var MaxCount=200;
    var Wo1=0;
    var Wo2;
    var X;
    var Y;
    var Z;
    
    //Start des Scriptes
    function start() {
    //URL bestimmen
    X = self.location.href;
    // von self.location.href den eigenen Dateinamen abschneiden
    // weil "Kontroll_Popup.htm" 18 Zeichen hat hier: -18
    Z = X.length - 18;
    Y = X.substring(0, Z) + FramesetURL;
    //Start
    win = window.open(FramesetURL, "Besuchertausch", "width=800,height=600, status=1");   
    Counter=setInterval("Wachen()", 1000);   
    wegcount=setInterval("Restart()", 1000);
    }
    
    //Restart bei Popup close
    function Restart() {
    Restartcount++;
    if (Restartcount > 5) {
    win = window.open(FramesetURL, "Besuchertausch", "width=800,height=600, status=1");    
    }   
    }
    
    //Überwachung
    function Wachen() {
    //Framebrechertest
    if (win.location != Y) { 
    win = window.open(FramesetURL, "Besuchertausch", "width=800,height=600, status=1");
    StopCount=0;
    }
    Restartcount=0;
    //Stopper Test
    Wo2=win.frames[1].location;
    if (Wo1==Wo2) {
    StopCount++;
    }
    else {
    Wo1=Wo2;
    StopCount=0;
    }
    if (StopCount>MaxCount) {
    win = window.open(FramesetURL, "Besuchertausch", "width=800,height=600, status=1");
    StopCount=0;
    }
    
    }
    
    function stop() {
    win.close();
    self.close();
    }
    
    </script>
    
    </head>
    <body onload= start();>
    
    Wächter  
    
    <a href="" 
    onClick="{stop(); return false;}">Beenden</a>
    
    </body>
    
    </html>
    6. AutoStartBT.htm (Diese Datei im Browser laden oder StartBT.htm)
    Startet bei Aufruf automatisch den Besuchertausch.

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Besuchertausch automatsich starten</title>
    
    <script type="text/javascript">
    
    function StartBT() {
    window.open("Kontroll_Popup.htm", "Framebrecher Meldung", "width=10, height=10");
    }
    
    </script>
    
    </head>
    
    <body onload="StartBT()";>
    
    </body>
    
    </html>
    Infos:
    JavaScript muss aktiviert sein.
    Das Kontroll_Popup muss geöffnet bleiben. Wird es beendet läuft der Besuchertausch zwar weiter, aber die Überwachung wird beendet.

    Das Script enthält einen einfachen Wiederaufruf des BT nach Erkennung eines Framebrechers oder Countdownstoppers, könnte aber natürlich nach Erkennung eines Framebrechers, oder Countdown Stoppers auch eine Meldeseite aufrufen. Diese Meldeseite müste dann nach Annahme der Meldung selber zum BT zurückleiten.

    Countdownstopper werden erkannt, indem überprüft wird ob sich die angezeigte Kampange geändert hat. Ändert sich die angezeigte Kampange für X Sekunden (hier 200 Sekunden) lang nicht, so wird das als Countdown Stopp gewertet. (Diese Funktion habe nicht getestet).

    Wenn das Besuchertausch Popup geschlossen wird, so startet das Kontroll_Popup nach ca. 5 Sekunden den Besuchertausch in einem neuen Popup.

    2. Version ohne Popup
    Scheint nur mit FF 1.5 zu funktionieren.


    1. Frameset.htm (Diese Datei im Browser laden)
    Das Frameset.

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
       "http://www.w3.org/TR/html4/frameset.dtd">
    <html>
    
    <head>
    <title>Frameset Test</title>
    
    <script type="text/javascript">
    
    function FBMeldung() {
           top.location="melden.htm";
            }  
         
    </script>
    
    <frameset rows="30,*"; onunload="FBMeldung()">
      <frame src="abuse.htm" name="ab"> 
      <frame src="ad.htm" name="werbung">
    </frameset>
    
    </head>
    
    <body>
    
    </body>
    
    </html>
    2. Ad.htm
    Der Framebrecher
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Framebrecher</title>
    <script type="text/javascript">
    if (top != self) {
        top.location = self.location;
    }
    </script>
    </head>
    <body bgcolor="#000000" text="#FFFFFF">
    
    <h1>Framebrecher</h1>
    
    </body>
    
    </html>
    3. Abuse.htm
    Der Vergütungsframe. Hier eine html Datei ohne funktion.

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Vergütungsframe</title>
    
    </head>
    <body>
    
    </body>
    
    </html>
    4. Melden.htm
    Die Seite wird bei Framebrecher Erkennung aufgerufen und schickt den Browser nach 5 Sekunden zurück zum Frameset.
    Da das Frameset auch nach einem vom User ausgelösten Reload diese Meldeseite aufruft, könnte an hier vielleicht auch einen Button oder Link einbauen, der die Meldung bei Klick rückgängig macht.
    So würde die Kampange nicht zwangsläufig gemeldet werden nur weil ein User mal ausversehen die Seite reloadet.

    Code:
    <html><head><title>Test</title>
    
    <script type="text/javascript">
    
    function Go() {
    self.location="Frameset.htm";
    }
    
    setTimeout("Go()", 5000);
    
    </script>
    
    </head>
    
    <body bgcolor="#BACBDE">
    Meldung. Weiter in 5 Sekunden
    </body>
    
    </html>
    Diese Art der Framebrecher Erkennung werden einige vielleicht aus einigen Besuchertauschern kennen. Eben weil ich sowas schon mal gesehn hatte wusste ich, dass es irgendie geht oder zumindest mal ging.
    Leider scheint sie (zumindest auf meinem System) nur im FF 1.5 zu funktionieren.

    3. Version mit Restart Popup.

    1. Frameset.htm (Diese Datei im Browser laden)
    Das Frameset. Hier ist auch die Erkennung eingebaut.

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
       "http://www.w3.org/TR/html4/frameset.dtd">
    <html>
    
    <head>
    <title>Frameset Test</title>
    
    <script type="text/javascript">
    var win;
    
    function FBMeldung() {
           win = window.open("Popup.htm", "Besuchertausch", "width=800,height=600, status=1");
    }   
         
    </script>
    
    <frameset rows="30,*"; onunload="FBMeldung()";>
      <frame src="abuse.htm" name="ab"> 
      <frame src="http://www.gmx.de" name="werbung">
    </frameset>
    
    </head>
    
    <body>
    
    </body>
    
    </html>
    2. Abuse.htm
    Der Vergütungsframe. Hier ein Dokument ohne Funktion

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Vergütungsframe</title>
    
    </head>
    <body>
    
    </body>
    
    </html>
    3. Ad.htm
    Der Framebrecher

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Framebrecher</title>
    <script type="text/javascript">
    if (top != self) {
        top.location = self.location;
    }
    </script>
    </head>
    <body bgcolor="#000000" text="#FFFFFF">
    
    <h1>Framebrecher</h1>
    
    </body>
    </html>
    4. Melden.htm
    Die Meldeseite. Sie wird bei einem Framebrecherfund im selben Fentser aufgerufen, in dem der Besuchertausch läuft und schickt das Gebrochene Fenster nach 5 Sekunden in den BT zurück. Die Seite kann aber auch im Popup geladen werden.

    Code:
    <html><head><title>Test</title>
    
    <script type="text/javascript">
    
    function Go() {
    top.location.href="Frameset.htm";
    //Wenn Die Seite im Popup geladen wird dann
    //top.location.href=... ändern in
    //opener.location.href=...
    }
    
    setTimeout("Go()", 5000);
    
    </script>
    </head>
    
    <body bgcolor="#BACBDE">
    Meldung. Weiter in 5 Sekunden
    
    </body>
    </html>
    5. Popup.htm
    Das Popup. Es entscheidet bei einer Framebrecher ähnliche aktivität, ob es wirklich ein Framebrecher war, oder ob der User den Besuchertauscher geschlossen hat.
    Erkennt es einen Framebrecher, so schliesst es sich und lädt im gebrochenen Fenster die Meldeseite.

    Code:
    <html><head><title>Popup</title>
    
    <script type="text/javascript">
    
    function Close() {
    //Schliesst das Popup
    var x;
    x=opener;
    if (x) {
    //Framebrecher muss gemeldest werden
    opener.location.href="Melden.htm";
    self.close();
    }
    else {
    //User hat den Besuchertausch geschlossen
    self.close();
    }
    }
    
    </script>
    </head>
    
    <body bgcolor="#BACBDE" onload="Close()";>
    
    </body>
    </html>
    Das Frameset öffnet bei einem Framebrecherfund, bzw wenn es verlassen wird das Popup. Das Popup prüft ob es wirklich ein Framebrecher war oder ob der User den Besuchertausch nur geschlossen hat. Es beendet sich aber dann sofort nach dem laden.
    Erkennt es einen Framebrecher, so lädt es im Fenster welches gebrochen wurde die Meldeseite, welche nach 5 Sekunden in den Besuchertausch zurückleitet.

  2. #2
    Erfahrener Benutzer Avatar von bulli
    Registriert seit
    06.01.2007
    Beiträge
    234
    So, ich habe den Code auch mal ausprobiert, soweit funktioniert alles sehr gut, nur das jeden Sekunde der Frame "werbung" neu geladen wird.

    Wenn ich diese
    PHP-Code:
    Counter=setInterval("Wachen()"1000);   
    wegcount=setInterval("Restart()"1000); 
    Werte hochschraub, auf dann gehst, nur dann ist läuft auch die Framebrechererkennung nur immer seltener durch undwenn der Frame gebrochern wird, wird erst später wieder zurück in den Auto-Surf gelitten.

  3. #3
    Moderator Avatar von Worka
    Registriert seit
    21.05.2007
    Beiträge
    973
    Also das könnte hier dran liegen.

    Code:
    ...
    if (win.location != Y) {
    win = window.open(FramesetURL, "Besuchertausch", "width=800,height=600, status=1");
    ...
    Tausch mal Y gegen die URL des Frameset aus.

    Und erstze vielleicht mal

    Code:
    ...
    //Restart bei Popup close
    function Restart() {
    Restartcount++;
    if (Restartcount > 5) {
    win = window.open(FramesetURL, "Besuchertausch", "width=800,height=600, status=1");    
    }   
    }
    ...
    Gegen

    Code:
    ...
    //Restart bei Popup close
    function Restart() {
    Restartcount++;
    if (Restartcount > 5) {
    Restartcount = 0;
    win = window.open(FramesetURL, "Besuchertausch", "width=800,height=600, status=1");    
    }   
    }
    ...
    oder

    Code:
    ...
    //Restart bei Popup close
    function Restart() {
    if (win) {
    }
    else {
    win = window.open(FramesetURL, "Besuchertausch", "width=800,height=600, status=1");    
    }   
    }
    ...
    Der erste Code soll das Popup zu Frameset zurückholen, wenn die location des Popup ungleich der Adresse des Frameset ist.

    Der zweite Code Zählt eine Variable hoch, das Popup setzt sie wieder auf 0.

    Verschwindet das Popup, so wird die Variable immer höher gezählt und erreicht nach 5 Sekunden den Wert 5.

    Dann erkennt das Script, dass das Popup geschlossen wurde.

    Die Änderung (letzter code) sollte aber besser sein, falls sie funktioniert. (habe ich nicht getestet)

  4. #4
    Erfahrener Benutzer Avatar von bulli
    Registriert seit
    06.01.2007
    Beiträge
    234
    OK, danke, der neue Code funzt einwandfrei, danke.:thumbsup::thumbsup::thumbsup:

  5. #5
    Erfahrener Benutzer
    Registriert seit
    05.07.2006
    Beiträge
    134
    Ich glaub ich hab den ultimativen JS-Code gefunden gegen Framebrecher.
    Ist zwar abgekupfert aber irgendwie genial.

    einfach nur ein kleines JS in die Seite einbauen wo das Frameset aufgebaut wird.

    Hier ein kleines Beispiel mit den Dateien von Worka:

    Code:
    <html>
    
    <head>
    <title>Frameset Test</title>
    
    <SCRIPT LANGUAGE="JavaScript1.2" TYPE="text/javascript">
    
    <!--
    
    window.onbeforeunload = unloadMess;
    
    function unloadMess(){
    
    var  mess ="Ist das ein Framebrecher?\nWenn du die Seite verlassen willst klicke OK.\nWenn du weitersurfen willst klicke auf Abbrechen ";
    
    	return mess;
    
    }
    
    //-->
    </SCRIPT>
    
    <frameset rows="30,*">
      <frame src="abuse.html" name="ab">
      <frame src="ad.html" name="werbung">
    </frameset>
    
    </head>
    
    <body>
    
    </body>
    
    </html>
    Loseschleuder.de

    Jede Stunde mehrfach bis zu 100.000 Lose geschenkt!
    Keine extra Anmeldung nötig! Klamm ID genügt! -> Auszahlung ab 100.000 Losen

  6. #6
    Moderator Avatar von Worka
    Registriert seit
    21.05.2007
    Beiträge
    973
    Ja das geht, aber es geht ja darum ohne Useraktivität den Framebrecher zu erkennen und weitersurfen zu können.

Ähnliche Themen

  1. [A] Popup auf DSN-ads
    Von DimpleX im Forum Sonstiges
    Antworten: 17
    Letzter Beitrag: 13.01.2011, 16:46
  2. DSN-Ads Popup Aktion
    Von Worka im Forum Talk, talk, talk...
    Antworten: 0
    Letzter Beitrag: 21.08.2008, 01:27
  3. Bestätigung Bettelaufruf im Popup
    Von enrico72 im Forum Weiterentwicklung Basisscript
    Antworten: 9
    Letzter Beitrag: 04.03.2007, 19:09
  4. Games im popup ?
    Von Zeitter1 im Forum [HD] Programmieren
    Antworten: 2
    Letzter Beitrag: 03.02.2007, 20:03
  5. Startseite Popup
    Von Dreamerweb im Forum Support zu Addons & Erweiterungen
    Antworten: 10
    Letzter Beitrag: 19.01.2007, 00:40

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •