Ultra-Frame-Buster 1.0
Bio
- javascript
Nachdem mein letztes Posting mit meinem Script ohne Verwendung so hartnaeckig ignoriert wurde, habe ich daraus den s.g. Ultra-Frame-Buster gemacht.
Er beseitigt den Inhalt aller ueber dem eigenen Frame angeordneten Frames und ersetzt ihn durch ein anzugebendes Dokument.
Vielleicht kriege ich diesmal einen Reply? Einen kleinen? Oder moegt ihr keine Skripte ausprobieren?
Bio
----
<html>
<head>
</head>
<script language="JavaScript">
/* Frameverschachtelungsfinder */
/* Findet heraus, wie tief der eigene Frame verschachtelt ist, und ermittelt den Namen, über den er ansprechbar ist. */
/*
V1.0
(C) 1999 Peter Asemann. Alle Rechte vorbehalten. Nutzung und Übernahme des Quellcodes, auch in Teilen oder anderer Form, nur mit Genehmigung des Autors. :-)
*/
/* Nebenbei die einzig 100% sichere Methode festzustellen, ob der eigene Frame nicht in einem anderen dargestellt wird. */
/* Jede andere Methode (Abfragen von top.window.document.bgcolor) kann ausgetrickst werden (Derjenige, der die Seite einbetten will, passt die Hintergrundfarbe des top.window einfach an) bzw. scheitern (z.B. ist das setzen eines Zufallswertes fuer top.window.document.irgendeinevariable evtl. nicht erlaubt, wenn der Frame in der Tat in einem Subframe dargestellt wird und die Hauptseite auf einem anderen Server ist)
Die simple Methode mit top.frames.length oder parent.frames.length kann ebenso mit Framesets ausgetrickst werden, die nur einen Frame enthalten, so dass top.frames.length und parent.frames.length wieder 1 ergeben. */
sec=new Array("0","1","2","3","4","5","6","7","8","9");
shutit=new Array();
randomvalue=Math.random();
self.document.framefinder=randomvalue;
lastfound='top.window';
up='parent.frames';
down='';
co=0;
raus=1;
high=0;
steps=0;
offset=0;
/*
alert(parse('.frames[0].frames[3]',1));
alert(parse('.frames[0].frames[1]',2));
*/
while (raus)
{
maxframe=eval(up).length;
maxsteps=preparse(down);
framenumber=where (up,down,maxframe,maxsteps);
if (framenumber==-1)
{
document.write ('<br>');
document.write (' Der Frame, in dem dieses Skript läuft, ist ansprechbar als:<br><br>'+lastfound+', liegt also in einer Tiefe von '+maxsteps+' Frameset-Verschachtelungen. (top.window = Tiefe 0)<br>'+'<br>');
raus=0;
for (a=0;a < high;a++)
{
/* Hier irgendeine im selben Verzeichnis wie das Skript liegende Datei angeben, evtl. eine Warnung, doch die eigene Page nicht in Unterframes anzeigen zu lassen */
eval(shutit[a]).href='htmlguide.html';
}
alert ('Kontrolle (nur für Interessierte, die verstehen, warum die Übereinstimmung der Zahlen die Richtigkeit des Ergebnisses bestätigen) '+randomvalue +'/'+eval(lastfound).document.framefinder);
}
else
{
high += offset;
up='parent.'+up;
down ='.frames['+sec[framenumber]+']'+down;
}
}
function where (up,down,maxframe,maxsteps)
{
document.write ('<br>'+'Eigener Frame ist Teil eines Framesets mit:'+maxframe+' Frames. Momentane bearbeitete Schachtelungsebene:'+maxsteps+'<br>');
offset=0;
for (a=0,stay=1,retvalue=-1; a<maxframe;a++,stay=1)
{
for (sti=0;sti<=maxsteps && stay;sti++)
{
if (eval (up+'['+sec[a]+']'+parse(down,sti)))
{
document.write('Suche eigenen Frame in '+up+'['+sec[a]+']'+parse(down,sti)+'DOWN:'+down+'sti:'+sti+'<br>');
if (sti==maxsteps)
{
if (eval(up+'['+sec[a]+']'+parse(down,sti)).document.framefinder==randomvalue)
{
document.write ('Eigenen Frame gefunden in Frame '+a+' des aktuell bearbeiteten Framesets (in Tiefe '+sti+')<br>');
retvalue=a;
lastfound='top.frames'+'['+sec[a]+']'+parse(down,sti);
}
else
{
shutit[high++] = up+'['+sec[a]+']'+parse(down,sti)+'.document.location';
}
}
}
else
{
document.write('Keine hinreichende Tiefe (nur '+(sti-1)+' bei:'+a+')\nEigener Frame ist nicht Unterframe von '+up+'['+sec[a]+']'+'<br>');
shutit[high+(offset++)]=up+'['+sec[a]+']'+'.document.location';
stay=0;
}
}
}
return (retvalue);
}
function parse(downstr,steps){
{
if (steps==0)
return ('');
downstr=downstr+'.';
for (cur=0,pa=0;pa<=steps;pa++)
{
cur=downstr.indexOf('.',cur)+1;
}
return (downstr.substring(0,cur-1));
}
}
function preparse(downstr)
{
for (ppi=0,ppc=0;(ppl=downstr.indexOf('.',ppi))!=-1;ppi=ppl+1,ppc++);
return (ppc);
}
</script>
<body>
FrameFinder (C) 1999 by Peter 'Bio' Asemann.<br>
</body>
</html>
ich probiere den bestimmt NICHT aus,
weil ich einfach im moment zu faul bin strg+c zu drücken, mein homesite zu öffnen und strg+v auf die tastatur zu klatschen *g*
aber mal im ernst, da hat sich einer wegen paar dämlichen lamern, die die einbetten, ganz schön arbeit gemacht....
ich wünsche dir noch viel glück...
und einen TIP:
NICHT ÜBERTREIBEN *gg*
c'ya
Kai