PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Interesse an Framebrecher Erkennung per JS?



Worka
20.02.2008, 10:08
Hallo
Also da der Spider ja momentan soweit fertig bei Gremlin liegt und ich sowiso mal was neues lernen wollte, hab ich mich mal ein bisschen mit JS beschäftigt.

Ich habe einen Code geschrieben, der beim Verlassen einer Webseite erkennt wohin man die Seite verlassen will.

Das sollte doch beim Klicken ganz nützlich sein.
Klickt ein User einen Framebrecher der den Vergütungsframe bricht, wird der Vergütungsframe verlassen.

Erfolgt die Weiterleitung nicht zur Vergütung, so handelt es sich um einen Framebrecher, oder der User hat selber eine andere URL eingegeben.

Auf jeden Fall könnte man in so einem Fall doch den Browser zu einem anderen Ziehl weiterleiten.

Also im Besuchertausch, zurück in den Besuchertausch.
Beim Klicken, auf eine Seite, wo er die Kampange als Framebrecher melden kann.

Falls da Interesse besteht, würd ich die Sache gern mal weiterverfolgen, aber am Ende braucht es für das VMS immer PHP und das kann ich nicht und werde es wohl so bald ich nicht lernen. Den Teil müsste jemand anderes machen.

MfG
Worka

Hardy
20.02.2008, 10:52
Interesse besteht auf jedenfall aber...
aber viel interessanter wäre ja framebrecher erst garnicht brechen zu lassen...
hatte da mal die idee den frame in der die werbung angezeigt wird einfach als iframe anzuzeigen...
aber wie das umsetzbar ist und ob das vergütet wird das weiß ich leider nicht habe mich damit aus zeitlichen gründen nicht weiter mit beschäftigt

Worka
20.02.2008, 11:33
Wie ich gerade feststelle, läuft das mit der Erkenung des Ziel im vorraus auch nur wenn das Ziehl auf dem lokalen Rechner liegt.

Nun hab ich es mit einer Aufenthaltszeit gelöst. Das Dokument prüft einfach ob es verlassen wird, obwohl der Aufenthalt noch läuft.

Die Erkennung läuft soweit auch, aber ich schaffe es nicht die Umleitung zu stoppen und eine andere URL aufzurufen.

*Edit*
IFrames können doch auch gebrochen werden.
Siehe Surfer Script. Der Autosurf nutzt IFrames und dort gibt es auch Framebrecher.

Hardy
20.02.2008, 11:47
Den autosurf kenne ich leider nicht.
Mich würde mal interessieren warum die frames gebrochen werden.
Vielleicht kann man ja das übel an der wurzel packen und den entsprechenden befehl unterdrücken.
So weit ich das sehe doch nur wenn die beworbene seite inerhalb der aufendhaltszeit refresht wird.
Oder was können noch ursachen für framebrecher sein?

Jenny
20.02.2008, 12:30
Ursachen für die meisten Framebrecher sind Codes die sich in der Start oder index der aufgerufenen URL befinden. Spezielle Framebrechercodes

FLash
20.02.2008, 15:17
also ich habe mal einen framebrecher programmiert.. und den meinen konnte man nicht umgehen.. denn wenn nicht z.b die index.php geöffnet wird steht ganz oben im header das er dann die index.php aufrufen soll..

hier ein beispiel.. ist eigentlich nur eine umleitung funktioniert aber auch als framebrecher:

die seite hatte frames deswegen das ganze..sollte nur eigentlich nur die frames nachladen.... hier der inhalt einer inhaltsdatei:


<?php
session_start();

if(!$_SESSION["framed"]) {
$_SESSION["frame"] = "about.php"."?".$_SERVER["QUERY_STRING"];
header("Location: reload.php?$SID");
exit;
}
?>


und hier der inhalt meiner index datei..:


<?php
session_start();

$_SESSION["framed"] = TRUE;
if(isset($_SESSION["frame"])) { $frameInhalt = $_SESSION["frame"]; }
else { $frameInhalt = "inhalt.php"; } // standardinhalt
?>

...............
<frame name="haupt" src="<?php echo $frameInhalt; ?>" scrolling="auto">


aber das ist nur ein beispiel.. den code findet man so in der art nirgendswo...
hatte das früher gemacht, wo ich noch keine ahnung von php hatte..

vielleicht hilft das ja ein bishen bei der entwicklung.. hätte auch interresse an sowas..

jpwfour
20.02.2008, 17:09
also meines wissens nach werden alle framebrecher oder framekiller oder wie auch immer, nur mit einem der beiden javascript schnippsel realisiert, natürlich können diese auch mal leicht abgeändert sein:

<script type="text/javascript">
<!--
if(top.frames.length > 0)
top.location.href=self.location;
//-->
</script>
oder:

<script type="text/javascript">
if (top.location!=self.location)
{ top.location=self.location.href }
</script>kann auch mal verkürzt nur so sein:

<script type="text/javascript">
if (top != self) top.location = self.location;
</script>dagegen kommt man praktisch gar nicht an, jedenfalls ist mir bisher noch keine möglichkeit bekannt, und auch google kann dazu keine lösung finden, und wenn man sich die abarbeitung von js anschaut, merkt man auch, dass es faktisch unmöglich ist.

was man machen kann, clientseitig, was aber jeder user in seinem browser selber einstellen muss, das "framebrechen" bzw. "frame(set) verlassen" zu deaktivieren, was aber auch nur in browsern, die user script unterstützen funktioniert, oder der user deaktiviert js, dann funzt das natürlich auch nicht.

(http://de.selfhtml.org/javascript/beispiele/seitenanzeige.htm)

eine möglichkeit ist, was aber ziemlich übertrieben ist und bei mehreren tausend klicks am tag auch für den server nicht mehr schön, dass man die werbe-seite per php holt, dann den js code sucht und rauskürzt, und dann anzeigt, das ist denk ich mal nicht verboten, aber es benötigt halt prozessor und ram kapazitäten, und kann die anzeige für den user verlangsamen.

das einzig sinnvolle ist, neue kampagnen und paidmails auf framebrecher zu überprüfen, und diese dann schnell wieder rauszunehmen und den anbieter zu informieren.

Worka
20.02.2008, 21:58
Also mein Script leitet nach 3 Sekunden zu einer Seite weiter, das ist mein Test Framebrecher.

Das Script erkennt dann ob das Dokument es vor Ablauf einer Aufenthaltszeit verlassen wird.

Ist dem so, so leitet es zu einer Adresse weiter und eine MessageBox erscheint (nur damit ich selber auch erkenne, dass das Script es erkennt).

Das Problem ist, dass wenn ich die Messagebox bestätige, der Framebrecher trotzdem zum Ziel weiterleite.

Wenn die Messagebox erscheint, ist die Seite geladen, zu der ich im Framebrecherfall weiterleiten möchte.
Klicke ich in der Box auf "OK" so wird der Browser aber trotzdem zum "Framebrecher Ziehl" geleitet.

Könnte das daran liegen, dass der "pseudo Framebrecher" und mein Script im selben Dokument sind?

*Edit*
Kann mir mal jemand ein Frameset erzeugen, damit ich es testen kann?
Framebrechercode habe ich. Der müsste in ein Dokument rein.

Mein Erkennungscode, müsste dann in das Frameset und das Frameset sollte den Framebrecher laden (am besten per klick auf einen Link, nicht sofort beim laden. Anfangs sollte das Frameset leer sein).

Ein paar Lose oder Ebesucher oder FuCos würd ich dafür hergeben.

jpwfour
20.02.2008, 23:31
hä, ich versteh jetzt überhaupt nicht, wie das script genau arbeitet, evtl postest du es mal hier? (ist es nur js? )

Worka
20.02.2008, 23:50
Das Script setzt nach X Sekunden (aufenthalt) eine Variable auf 1.

Wenn das Dokument verlassen wird, wird geprüft, ob der Aufenthalt vorbei ist, also ob die Variable = 1 ist.

Ist dem so, so passiert nichts.

Ist aber die Variable != 1 dann navigiert das Dokument auf einen neue Seite und es erscheint eine Messagebox (das ist nur für mich um zu testen ob das Script auch die stell mit der Box ausgführt).


Um das Script zu testen habe ich ausserdem eigebaut, dass es nach X Sekunden eine neue Seite lädt.
Dann wird das Verlassen der Seite vom ersten Script erkannt und es verhält sich wie beschrieben.

Worka
21.02.2008, 03:10
Das Script scheint immer zur Framebrecheradresse weiterzuleiten. Die Seite die ich aufrufen möchte, wird nur geladen solange die Messagebox erscheint.
Bestätoge ich diese, wird der Browser zum Framebrecher geleitet.

Für den IE habe ich übe Google eine Möglichkeit gefunden Framebrecher auszuschalten. Im FF funktioniert das angeblich nicht.

Das JavaScript, macht beim Framebrecherfund nun folgendes.

Anzeige einer Messagebox mit der Frage ob der User den Framebrecher melden möchte.

Klickt der User auf "JA" so wird er zu einer URL weitergeleitet. Da könnte jetzt ein php Script aufgerufen werden, dass die Meldung annimmt und entsprechend verarbeitet. Also Sperren (global oder nur für den Meldenden User) oder dem Admin melden.

Wärend die MeldeURL geladen wird ist eine Messagebox zu sehen, die den User bittet die Meldeseite ausladen zu lassen, bevor er auf "OK" klickt (die Seite muss ja keine Grafik beinhalten, nur einen Text "Meldung OK").


hä, ich versteh jetzt überhaupt nicht, wie das script genau arbeitet, evtl postest du es mal hier? (ist es nur js? )

Ist nur JS und ganz einfach.

Das navigieren zur Framebrecheradresse kann ich nicht verhindern aber ich kann das laden der Framebrecherseite sofort stoppen. Dazu braucht es in der Seite, die im Falle einer Framebrechermeldung aufgerufen wird noch ein kleines Script.

jpwfour
21.02.2008, 17:08
Für den IE habe ich übe Google eine Möglichkeit gefunden Framebrecher auszuschalten. Im FF funktioniert das angeblich nicht.

wenn du damit das attribut:
SECURITY="restricted"
meinst, dass funzt nur im ie ab v6, und ist eh keine gute lösung, da es js im frame komplett deaktivert. (und nur im ie funzt, also nur bei 40-70% der user)

Worka
22.02.2008, 07:44
wenn du damit das attribut:
SECURITY="restricted"
meinst, dass funzt nur im ie ab v6, und ist eh keine gute lösung, da es js im frame komplett deaktivert. (und nur im ie funzt, also nur bei 40-70% der user)

Stimmt. Da werden sich die Seitenbereiber bedanken wenn die Sponsoren deswegen alle nicht vergüten. Das hatte ich nicht bedacht.

Das habe ich gerade über google gefunden:
http://www.klamm.de/forum/archive/index.php/t-24796.html

Man beachte den Abschnitt: " Framebreaker-Erkennung EXKLUSIV NUR BEI MIR!"

Genau sowas (den JavaScript Teil, also nur die Erkennung und Serverkontakt) habe ich geschrieben. Das beschreibt es sehr gut.

jpwfour
22.02.2008, 16:45
okay, für 1 mio is des ja s´ziemlich billig ist das noch zu haben?

(EDIT: habs grad ein paar mal gefunden, aber fast alle behaupten, dass es bei ihnen "exklusiv" ist:
http://www.script-laden.de/index.php?5kn3tse6hem8glhmcsb4cq2si6&ID=17&liz=VMSa&cat-row=true&cat=VMSa&page=&module=script
http://rduke.claudia.hosting-friends.de/shop/index.php?9c5b1f11b89a2ca7f7abe408bad8ede5&ID=11&liz=vmsadds&cat-row=true&cat=vmsadds&page=&module=script)


im endeffekt über die datenbank nicht schwer, nur halt umständlich, also wenn der user einen banner klickt, db eintrag, wenn banner vergütet (also kein frmabrecher), db eintrag wieder löschen.
wenn user seite aktualisiert und es sind in der tabelle noch einträäge, kann man ihn fragen, ob frame brecher oder nicht.

aber wie so etwas mit js geht (da ja das script eigentlich sofort bei laden der seite die neue location aufruft) weiß ich nicht.


Kann mir mal jemand ein Frameset erzeugen, damit ich es testen kann?
Framebrechercode habe ich. Der müsste in ein Dokument rein.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Frameset Test</title>
</head>
<frameset rows="300,*">
<frame src="abuse.htm" name="verguetung">
<frame src="ad.htm" name="werbung">
</frameset>
</html>ad.htm:

<!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>abuse.htm:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>BannerKlick auf Klammloseseite</title>
<script type="text/javascript">

dein framebrecher erkennungsscript??

</script>
</head>
<body>
...
</body>
</html>

Worka
23.02.2008, 16:49
Vielen Dank für den Code.
Mein Script scheint im Frameset irgendwie nicht so zu funktionieren wie es funktioniert wenn es nicht im Frame dargestellt wird.

Ich weiss nicht ob die Meldeseite aufgerufen wird. Im Frameset sehe ich nicht dass dem so wäre, ohne Frame macht das dokument es aber. Daher hab ich es jetzt so geändert, dass die Meldung in einem Popup erfolgen würde, welches sich auch selber wieder schliesst.

Den Code werde ich morgen mal posten, vielleicht kann ja jemand damit was anfangen.

Worka
23.02.2008, 18:13
So nachdem ich den Framebrechercode zum klicken fertig habe habe ich es endlich geschaft, also das was ich eigentlich wollten.

Ich habe ein Script geschrieben, das einen Besuchertausch überwacht und ggf. nach einem Framebrecher neu startet.

Dazu muss zuerst ein Popup geöffnet werden. Das Popup öffnet den Besuchertausch nun in einem Folgepopup.

Das erste Popup prüft nun ständig ob ein Framebrecher aufgeteten ist und wenn dem so ist, schliesst es den Besuchertausch und startet Ihn in einem neuen Popup.

Denkbar wäre auch, dass das erste Popup den BT nicht sofort neu startet sondern nach dem schliessen des Framebrechers zu einer Meldeseite navigiert, welche dann selber zum BT zurückleitet.

Getestet ist es im FF.
Also wird das Frameset entladen, so schliesst das erste Popup den BT und lädt Ihn in einem neuen Popup neu.

*Edit*
Das liesse sich natürlich auch mit nur einem Popup lösen, aber dann muss immer die den Besuchertausch aufrufende Seite geöffnet bleiben, weil sie dann den BT im Popup überwachen müsste.
In meiner derzeitigen Version überwacht ja das erste Popup den BT im zweiten Popup.

jpwfour
23.02.2008, 20:27
o o

ziemlich kompliziert hört sich das an, vor lauter popups check ich jetzt gar nichts mehr.
ich denk, da ist es einfacher, alle seiten nach framebrechern zu durchsuchen (mit php) , und die entsprechenden zu entfernen.

Worka
24.02.2008, 03:33
Das mit der Erkennung klappt nicht so wie ich das wil, aber...
Auf diese von mir beschriebene Art ist es möglich einen Besuchertausch Framebrecher unempfindlich zu machen, indem man den BT als Popup laufen lässt und das Aufrufende Fenster ist für den Refresh zuständig.

jpwfour
24.02.2008, 11:33
ich hatte mal meine hoffnung in das attribut onunload vom tag <frameset> gesetzt, aber das funktionierte irgendwie nur im FF, und dann alternativ mit onbeforeunload (was nur im IE funzt) zuarbeiten, wollte ich auch nicht.

aber es geht, wenn man die banner per js verlinkt und dann die "location" vom aufgerufenen popup überprüft, sollte es nicht mehr die aufgerufene sein, kann man darin eine andere seite laden, die z.bsp.automatisch einen datenbank eintrag macht mit bannerid und diesen als framebrehcer markiert, oder man zeigt eine seite an, wo der user entscheiden kan, ob framebrecher oder gewolltest verlassen.

Worka
24.02.2008, 12:25
ich hatte mal meine hoffnung in das attribut onunload vom tag <frameset> gesetzt, aber das funktionierte irgendwie nur im FF, und dann alternativ mit onbeforeunload (was nur im IE funzt) zuarbeiten, wollte ich auch nicht.
...


Zudem kann man so nur ein Meldepopup öffnet. Zumindest im FF bringt es bei mir nicht zu versuchen das Frameset erneut zu laden, weil der Framebrecher sofort danach doch aufgerufen wird.



...
aber es geht, wenn man die banner per js verlinkt und dann die "location" vom aufgerufenen popup überprüft, sollte es nicht mehr die aufgerufene sein, kann man darin eine andere seite laden, die z.bsp.automatisch einen datenbank eintrag macht mit bannerid und diesen als framebrehcer markiert, oder man zeigt eine seite an, wo der user entscheiden kan, ob framebrecher oder gewolltest verlassen.


So mache ich das jetzt auch. (also die Besuchertausch Framebrecher Erkennung)
Was ich nicht verstehe ist warum das nicht verbreitet obwohl eigentlich ganz einfach ist? Selbst wenn es nicht jedem User gefällt den BT im Popup laufen zu haben, so könnte man dem User doch die Wahl lassen ob mit Framebrechererkennung im Popup oder ohne Erkennung und nicht im Popup.

Momentan sind so viele Framebrecher in den Besuchertauschern das es echt keinen Spass mehr macht.

Sebmaster
24.02.2008, 12:47
Was ich nicht verstehe ist warum das nicht verbreitet obwohl eigentlich ganz einfach ist? Selbst wenn es nicht jedem User gefällt den BT im Popup laufen zu haben, so könnte man dem User doch die Wahl lassen ob mit Framebrechererkennung im Popup oder ohne Erkennung und nicht im Popup.


ist der code denn jetzt schon fertig???

mist wieder nicht gesehn:mad2:!? WOOO??? :DLOL

bin wohl noch etwas müde:sleep:

Mfg
Sebmaster

jpwfour
24.02.2008, 13:27
der code an sich ist wirklich sehr einfach, aber es könnte halt manche user stören, und aus angst davor bauen wohl auch viele sowas nicht ein, und andererseits muss man um den code einzubauen doch einiges (beim vms 1.2.) ändern.

mir persönlich sind die "normalen" framebrecher, die nur die seite aus dem frameset "rausziehen", egal, da man mit zurück und dann schnell "ESC" trotzdem die vergütung bekommt (FF), nur gibt es immer mehr, die "location.replace" benutzt, was die zurück funktion der browser zunichte macht, da so die history einfach ersetzt wird.
das finde ich ziemlich ärgerlich, aber eigentlich sollten da die werbenetzwerke und besuchertauschsysteme hinterher sein, und es nicht aufgabe der seitenbetreiber sein, da die, die die werbung annehmen, viel einfachere möglichkeiten haben, seiten auf framebrecher zu prüfen, dass nur (aus welchem grund auch immer) zum großteil unterlassen.

schließlich wird bei denen jede beworbene url irgendwann mal eingetragen, und genau da kann man den code per php darauf prüfen, ob er framebrecher-js enthält, und dann einfach nicht ins system aufnehmen, so braucht es nur 1 überprüfung, und 100000 klicks sind vom framebrecher verschont, oder noch viel mehr, und wenn jeder seitenbetreiber die links einzeln prüft, wird jede url so oft geprüft, wie sie an kunden verteilt wird.

wenn man selber einen besuchertausch betreibt, kann man das natürlich selber machen.

Worka
24.02.2008, 13:36
ist der code denn jetzt schon fertig???

mist wieder nicht gesehn:mad2:!? WOOO??? :DLOL

bin wohl noch etwas müde:sleep:

Mfg
Sebmaster

Also mein code macht nun folgendes und das ist auch fertig, sollte aber mal erprobt werden, weil ich hier alles Lokal mache.
Zudem sind das meine ersten "Krabelversuche" in JS.

1. Er öffnet ein Popup, welches den BT in einem weiteren Popup öffnet und überwacht.

2. Wird ein Framebrecher erkannt, so wird der BT entweder neu gestartet oder er wird zu einer MeldeURL navigiert, diese müsste aber dann selber in den BT (Rotation) weiterleiten.

Was ich mir noch vorstellen könnte wäre, dass man das Popup, welches den BT überwacht auch in regelmäsisgen abständen aktualisiert. So könnte man vieleicht auch erkennen ob ein User eine Countdownstoppende Seite aufgerufen hat.

Wird das überwachungspopup regelmässig aktualisriert aber die vergütung einer Kampange ist schon seit X Minuten überfällig, so stoppt sie wahrscheinlich den Countdown.

Beim nächsten Überwachungspopup Refresh, könnte man dann ein JavaScript einbauen, dass den BT zu einer "Countdownstopper" Meldeseite schickt und die MEldeseite leitet zum BT ( zur Rotation) weiter.



...
das finde ich ziemlich ärgerlich, aber eigentlich sollten da die werbenetzwerke und besuchertauschsysteme hinterher sein, und es nicht aufgabe der seitenbetreiber sein, da die, die die werbung annehmen, viel einfachere möglichkeiten haben, seiten auf framebrecher zu prüfen, dass nur (aus welchem grund auch immer) zum großteil unterlassen.

schließlich wird bei denen jede beworbene url irgendwann mal eingetragen, und genau da kann man den code per php darauf prüfen, ob er framebrecher-js enthält, und dann einfach nicht ins system aufnehmen, so braucht es nur 1 überprüfung, und 100000 klicks sind vom framebrecher verschont, oder noch viel mehr, und wenn jeder seitenbetreiber die links einzeln prüft, wird jede url so oft geprüft, wie sie an kunden verteilt wird.
...


Wenn "böse" User Ihre Seite nachträglich verändern, hilft auch eine Prüfung vor freischaltung nicht.
Da hilft nur regelmässige Überwachung. Deshalb wollte ich ja auch den Spider schreiben.
Aber wenn ich ein betroffenes System imunisieren kann ist das doch ein grosser Vorteil und fast noch besser als regelmässige Überprüfung.

Und zu dem Umgehen vom Framebrechern durch ESC:
Das geht aber nicht im AutoBT, wenn ich nur alle 24 H mal am PC bin um nachzusehen ob alles OK ist. Beim klicken hast Du natürlich recht, da geht es meisst noch klar.


Hier mein JS Code für die Framebrechererkennung beim Klicken:
*Edit*
Habs mal so verändert, dass die Kontrollseite immer zuerst geladen wird.)
*Edit2*
Was dann hier auch bedeutet, dass User ohne JS von der Vergütung ausgeschlossen sind. (Danke nochmal an jpwfour für den Hinweis).
Im Codeschnipsel Bereich gibt es dann in Kürze eine Version, die auch ohne JS vergütet und trotzdem sicherstellt, dass ein Framebrecher auch erkannt wird falls der Vergütungsframe mal länger als die Kampange lädt.

Frameset.htm (Das Frameset. Es lädt abuse.htm und ad.htm, ad.htm wird erst geladen wenn die Überachungsseite "abuse.htm" geladen wurde)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>

<head>
<title>Frameset Test</title>

<frameset rows="300,*">
<frame src="abuse.htm" name="ab">
<frame src="" name="werbung">
</frameset>

</head>

<body>

</body>

</html>
2. Ad.htm (der Framebrecher)


<!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. Meldeseite.htm (Die Seite die bei Framebrechermeldung geladen wird)


<html><head><title>Melden</title>

<script type="text/javascript">

function Schliessen() {
window.close();
}


setTimeout("Schliessen()", 5000);

</script>
</head>

<body bgcolor="#BACBDE">
Meldung. Weiter in 5 Sekunden

</body></html>


4. Abuse.htm (enthält die Erkennung, erst wenn die Abuse.htm geladen wurde, wird im Frameset die Werbung geladen.)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Vergütungsframe oder Überwachungsframe</title>



<script type="text/javascript">
var Fertig=0;
var count=0;
var AufenthaltTime=5;
var Werbung="Ad.htm";
var win;


function FBMeldung() {
if (Fertig != 1) {
Check = confirm("Framebrecher ähnliche Aktivität erkannt. Melden?");
if (Check== true){
win=window.open("meldeseite.htm", "Framebrecher Meldung", "width=300,height=300");
}
}
}

function Aufenthalt() {
count++;
if (count >= AufenthaltTime-1) {
Fertig = 1;
clearInterval(Work);
}
}

var Work=setInterval("Aufenthalt()", 1000);

</script>



</head>
<body onbeforeunload = "FBMeldung()";
onload="parent.frames[1].location=Werbung;">


</body>



</html>

bulli
01.03.2008, 21:34
Also bei mir funktioiert das ganze leider noch nicht, es kommt zwar iene Meldung, dass der Framebrecher erkannt ist, aber egal was man drückt passiert nichts weiters, außer dass man auf die Framebrecher Seite weitergeleitet wird.

Gehts bei euch?

Worka
01.03.2008, 22:47
Hast Du Popups erlaubt?
Den Aufruf der Framebrecherseite kann ich leider nicht verhindern aber es sollte sich ein Popup öffen (ohne jede Funktion, nur ein html dokument dass sich nach 5 Sekunden selber schliesst).

Dieses Popup könnte nun eine Meldeseite öffnen (beinhalten), also ein php Script, welches die Meldung der Kampange annimmt und verarbeitet.

Habe es gerade nochmal den Code hier per Copy and Paste in Testdateien eingefügt. Bei mir funktioniert es.
JavaScript muss natürlich auch aktiviert sein. Bzw. wenn es deaktiviert ist werden zwar keine Framebrecher erkannt, man hat aber auch keine Framebrecher zu befürcheten, weil die ja per JavaScript funktionieren.

Da Du aber ja die Meldung erhälst würde ich auf Popups nicht erlaubt tippen.

bulli
02.03.2008, 15:04
Ja richtig, das hab ich ganz vergessen, es zu erlauben.
Es muss doch aber irgendwie eine Möglichkeit geben, das man einfach auf eine andere Seite umleitet, oder die Seite mit Framebrecher einfach automatisch schließt und die Surfbar in einem anderen Fenster weiterlaufen läst.

Ich habe mal einen kleine Tipp für dich, die Surfbar bei hit-tausch.de, dort geht das irgendwie, das man auf eine andere Seite weitergeleitet wird und dann wieder zurück in die Surfbar. Wahrscheinlich mit JS, also eigentlich sicher mit JS, weil es gibt ja sonst keine andere Alternative.

Worka
02.03.2008, 15:08
Also ich könnte mir da schon einen Code vorstellen aber er funktioniert nicht wenn ich ihn lokal auf meinem Recher teste.

Bin aber immer ein bisschen am Probieren vielleicht schaffe ich es ja noch.

Masterphil
02.03.2008, 15:13
Eben, zur Zeit ist Hit-Tausch die einzige Referenz die wirklich ne gute Framebrechererkennung hat, habe mich auch mal an die Progger des ganzen gewendet, für einen ähnlichen Auftrag wollten die 800 € sehen, lol.

Aber zumindest ist die Arbeit von Worka schonmal ein Anfang in diese Richtung.

MfG

Worka
02.03.2008, 16:46
Also meine Idee bestand darin, einfach einen frame einzubauen, der nie neu geladen wird und dann einfach beim Unload event, "top" zu einer Meldeseite navigieren zu lassen. Bzw den Code direkt im Frameset einzubauen.

Aber bei mir klappt das nicht.
Bei Hit-Tauch, funktioniert das aber auch nicht bei mir. Ich kann die Surfbar Refreshen, oder eine neue URL im Browser eingeben und Hinsurfen, ohne dass ich zur Meldeseite komme.

Aber wie ich soeben bemerke, funktioniert mein Code im FF 1.5.

Das muss ich mal eben genauer unter die Lupe nehmen...

*Edit*
Unter FireFox 1.5 klappt es, unter Firefox 2 nicht und im IE 6 auch nicht.
Aber der Code ist prinzipiel der selbe wie der von Hit Tausch.

Ist halt nur ein bisschen anders eingebaut, aber ist ein einfacher Einzeiler, der einfach die top.location beim Unload event zu einer Meldeseite mit Weiterleitung schickt.

bulli
02.03.2008, 18:01
Wäre ma cool, wenn du den neuen Code ma posten würdest, dann könnten wir den auch mal ausprobieren. Und ich will mich ma bei dir bedanken, für deine Zeit und Anstrengungen, welche du dafür investierst.

Danke ;):)



@Masterphil:

800 Euro für 20 Zeilen Javascript :lol::lol: Sau schlimm, diese Programmierer von heute.

Worka
02.03.2008, 18:17
Nichts zu danken. Ich lerne gern was neues und wenn man sein Lernen mit einer sinnvollen Aktivität verbinden kann ist das doch ein Anreiz schneller und mehr zu lernen.

Ich spiele noch ein bisschen mit dem Code rum und werde Ihn dann heute abend mal posten.

*Edit*
Hier der Code. Er funktioniert nicht im FF 2 und IE 6. Im FF 1.5 geht er, andere Browser habe ich nicht getestet.
Ich habe den Code, mal so verfasst, dass er sich z.B. für einen Besuchertausch eignen würde, weil er nach Meldung der Kampange zum Frameset zurückkert.

1. Frameset.htm
Das Frameset. Ich habe hier auch die Erkennung eingebaut.
Das Frameset meldet einen Framebrecher sobald es verlassen wird, also ist diese version geeignet für Besuchertauscher, bei denen das frameset nicht neu geladen wird.
Lädt ein user das Frameset manuell neu oder gibt im Adressfeld eine neue URL ein und will sie ansurfen, so wird das ebenfalls als Framebrecher erkannt.
Lädt ein Besuchertauscher das frameset neu, so kann die Erkennung auch in den Vergütungsframe eingebaut werden.



<!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



<!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.



<!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.



<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>
*Edit*
Ich merke gerade ich bin da mit klick und BT erkennung durcheinander gekommen...
Im laufe des Abends werde ich es noch mal überarbeiten

*Edit2*
So ist überarbeitet.
Im Codeschnipsel Bereich werde ich heute noch mal eine Version für Klicks posten.
Den Code für den Framebrechersicheren BT werde ich dann auch mal um dieses hier ergänzen.

*Edit3*
Klick Framebrecher Erkennung ist im Forenbereich [HD] Codeschnipsel.
Ohne JS wird auch vergütet, und wenn der Vergütungsframe langsamer als die Kampange lädt, wird ein Framebrecher auch erkannt, da die Erkennung im Frameset ist.

bulli
03.03.2008, 19:37
hi,
kann man dieses Script auch für ein iframe umbauen, also meine Surfseite ist eine Seite mit der Anzeige (Aufenthalt, ID, Vergütung) und im Iframe wird die Werbung ausgegeben, ist das irgendwie möglich?

Gruß bulli

Worka
03.03.2008, 21:08
hi,
kann man dieses Script auch für ein iframe umbauen, also meine Surfseite ist eine Seite mit der Anzeige (Aufenthalt, ID, Vergütung) und im Iframe wird die Werbung ausgegeben, ist das irgendwie möglich?

Gruß bulli

Ich kenne das Surfere Script als User und bin auf Deiner Seite angemeldet.
Gerade bin ich im Autosurf.

Ich kenne mich nicht so gut aus aber für mich sieht es so aus als würde das Frameset immer neu laden.

Das sollte aber trotzdem gehen, da die Weiterleitung nach dem Aufenthalt in einer JS Funktion erfolgt, sollte das sogar recht einfach sein.

Wenn Du möchtest, kann ich den html Quelltext einer Autosurf Seite von Dir mal kopieren und dann so ändern, dass es funktionieren sollte.

Aber wie Du dann Dein Script umschreiben musst, dass es die Änderung selber einbaut, weiss ich nicht.

*Edit*
Du hast in Deinem Autosurf ein JavaScript. Ich weiss nicht ob ich das Script posten darf weil es ja von Surferer ist, aber ich poste mal die Änderungen, die Du einbauen müsstest und das Script im Pseudo Code.
Änderungen sind Rot.
Das Script würde bei einem Framebrecher nun einfach die nächste Kampange aufrufen.



<script type="text/javascript">
<!--
//Aufenthalt wird Festgelegt
var ...

//zusätzliche Variable nötig
var Fertig=0;

//Die Weiterleitungsfunktion aus dem Surferer Script
//Weil ich keinen code posten möchte, der nicht von mir ist
//mache ich es in Pseudo code

function refresh() {
//wenn aufenthalt zuende DANN
// Neue Variable auf 1 Setzen
Fertig=1;
//Weiterleitung zur nächsten kampange
//Hier taucht im Orginalcode natürlich die
//URL der nächsten Kampange auf
//Bzw. die ID mit der der Autosurf aufgerufen wird

//Wenn aufrenthalt noch nicht zuende
//Countdown - 1
//In einer Sekunde erneut prüfen
}

//Neue Funktion nötig
function FBMeldung() {
if (Fertig==0) {
top.location="URL DER NÄCHTSEN KAMPANGE";
}
}

//-->
</script>



Dann beim IFRAME


<iframe frameborder="0" src="!!!WERBEURL!!!" width="720" height="420" onunload="FBMeldung()";></iframe>
Die !!!WERBEURL!!! hab ich mal rausgenomen, da steht natürlich im Orginal die URL der gerade angezeigten kampange.

Natürlich könnte man nach einem Framebrecherfund auch eine Meldeseite (ein Script) aufrufen, welche die Meldung annimmt, verarbeitet und dann zur SurfURL zurückleitet.

Worka
04.03.2008, 02:34
So ich habe soeben noch eine bessere Version erschaffen, die ohne Kontroll Popup auskommt und den BT nicht im Popup laufen lassen muss.

Aber es müssen Popups erlaubt sein.
Diese Popups schliessen sich aber selber, so dass jemand nur die Seite auf der der BT läuft für Popups freigeben muss.

Bei Framebrecher Erkennung wird ein Popup geöffnet (wie üblich... dort könnte ein Script geöfnet werden dass die Meldung annimmt und verarbeitet) und das Popup leitet die gebrochene Seite in den BT zurück. Dann schliesst es sich.

Den Code poste ich gleich mal im Forenbereich [HD] Codeschnipsel.
Er funktioniert im FF 2.0 und 1.5.

So hier die Früchte meiner Arbeit was die Besuchertauscher betrifft.
http://www.designerscripte.net/showthread.php?t=4905

Vor allem auf die letzte Version bin ich wirklich Stolz. Das funktioniert besser als alles was ich bisher gesehen habe weil im FF 2.0 und 1.5.
Prinzipiell sollten sich die drei Lösungen in jeden Besuchertauscher einbauen lassen.

bulli
04.03.2008, 17:45
Also ich habs mal eingebaut und lass mal alle Kampagnen durchlaufen. Könntest ja nochmal in den Quellcode schauen und sagen ob alles richtig eingebaut worden ist.

Und danke für deine Mühen.:smilewinkgrin:

Worka
04.03.2008, 17:58
Habe es mal angesehn.
Scheint alles Richtig zu sein.

Beachte dass diese Version nur mit FF1.5 funktioniert. (zumindest bei mir).
Ich lass den Autosurf mal laufen.
Die Liste von Surferer und das Addon habe ich noch nicht, also sollten einige Framebrecher bei mir losschlagen.

Es funktioniert NICHT.
Der IFRAME regiert nicht auf das onunload event.

Ich versuche es aber mal zu ändern so dass es funktioniert.

*edit*
Also...
Du musst den Link zur SurfURL auf Deiner Seite gegen einen Link zu einem Frameset austauschen.
Das Frameset wiederum besteht nur aus einem Frame und zeigt Deine SURFURL an.

Das Frameset:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>

<head>
<title>Anti-Framebrecher Frameset</title>

<script type="text/javascript">

function FBMeldung() {
//Adresse des frameset neu aufrufen
top.location="Frameset.htm";
}

</script>

<frameset rows="*"; onunload="FBMeldung()">
<frame src="SURFURL" name="Besuchertausch">
</frameset>

</head>

<body>

</body>

</html>
Tritt nun ein Framebrecher auf, so wird das Frameset velassen. Das Frameset reagierrt auf das onunload event und ruft sich selber neu auf.
Dabei wird der Autosurf aber immer mit den normalen Startparametern bzw ohne Parameter aufgerufen.

Also müsstest Du dann selber Serverseiting dafür sorgen, dass nicht immer wieder der Framebrecher aufgerufen wird, sonder vielleicht testen ob eine URL X mal hintereinander aufgerufen wurde ohne Vergütet zu werden oder so was ähnliches.

Den Seitenbquelltext Deines Aurosurfers könntest Du dann wieder in den Orginalzustand versetzen, DU kannst aber auch die Änderungen so lassen, weil sie ja eh keinen Effekt haben.

Das Frameset könnte auch eine MeldeURL aufrufen.
Der Server prüft ob in den letzten 10 Sekunden eine URL geladen wurde und wenn dem so war wird sie als Framebrecher erkannt.
Wurde keine URL aufgerufen, so handelt es sich um den Erststart des Frameset (das Frameset würde die MeldeURL auch beim Start des Autosurf aufrufen)

Worka
04.03.2008, 20:04
Es scheint immer noch nicht zu funktionieren.
Seltsamerweide klappt es wenn ich das Frameset lokal starte, aber sobald ich es von Deiner Seite lade, klappt es nicht.

Ändere Folgendes


function FBMeldung() {
//Adresse des frameset neu aufrufen
top.location="http://surf4lose.lose-download.de/index.php?as&u=USERNAME&start=start";
}
//Ändern in
function FBMeldung() {
//Adresse des frameset neu aufrufen
top.location="http://surf4lose.lose-download.de/index.php?as&u=USERNAME";
}


So wie es momentan ist, wird nach einem framebrecher der Autosurf einfach ohne Anti-Framebrecher frameset neu aufgerufen und der Framebrecher kann dann natürlich zuschlagen.

bulli
04.03.2008, 20:22
Ja stimmt, das war der Fehler.
Das Script funktioniert auch im Opera, aber leider nicht im FF2 und Internet Explorer 6.

Worka
04.03.2008, 21:40
Ja stimmt, das war der Fehler.
Das Script funktioniert auch im Opera, aber leider nicht im FF2 und Internet Explorer 6.

Wie gesagt um es mit FF2.0 auch zu machen (andere Browser habe ich nicht getestet) muss man Version 3 benutzen, wobei der User aber Popups für die Besuchertausch Seite erlauben muss.

Finde ich aber gar nicht so schlecht.
Der User erlaubt Popups, was dem Webbi Gewinne bringt.
Im Gegenzug lieftert der Webbi halt den Framebrecherschutz für den Autosurf.
Wenn man es mit Popups auf Seiner Seite nicht übertreibt (Vorbild z.B. das Popup hier im Forum, alle 4 Stunden), dann solle es die User nicht so sehr stören.

@bulli


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>

<head>
<title>Anti-Framebrecher Frameset</title>

<script type="text/javascript">
var Count=0;
var Erlauben=0;

function FBMeldung() {
//Adresse des frameset neu aufrufen
top.location="http://surf4lose.lose-download.de/index.php?as&u=Richy";
}

function FSetRestart() {
Count++;
if (Count>=15) {
//Wiederaufruf nach 15 Minuten
FBMeldung();
}
}

setInterval("FSetRestart()",60000);

</script>
</head>

<frameset rows="*"; onunload="FBMeldung()";>
<frame src="http://surf4lose.lose-download.de/index.php?as&u=Richy&start=start" name="Besuchertausch">
</frameset>

</html>


Aktualisiert nach 15 Minuten. Wie gesagt ich sehe mal ob sich da was intelligenteres machen lässt.

bulli
06.03.2008, 18:36
So ist nun eingebaut.
Vielen Dank.