Stefan Einspender: Urheberrecht oder sinnvolle Anwendungsmöglichkeit für Frames

Hallo ForumsleserInnen,

einige von Euch werden wissen, dass ich seit 1999 ein kunterbuntes
Patchwork (http://www.patchwork.favicon.de/) gebastelt habe, wobei
ein Haufen Arbeit in diesem Projekt steckt. Aus diesem Grund möchte
ich, dass alle Besucher zunächst auf der Homepage landen und habe
dort doch recht deutlich einen Hinweis platziert:

"Bitte Links zum Patchwork ausschließlich auf http://www.patchwork.favicon.de/ und nicht auf Unterseiten setzen."

Dieser Hinweis ist meiner Meinung eindeutig, auch wenn vielleicht
ein Verbot juristisch gesehen wohl sinnvoller wäre.

Leider wurden auch im vergangenen Monat wieder etliche Links nicht
wie gewünscht auf die Startseite meines Projektes, sondern direkt
auf die Unterseite mit dem bunten Bild gesetzt. Allein durch einen
Link auf der Website von Super RTL kamen mehrere hundert Besucher,
aber auch ganz dreiste Fälle sind darunter, wie der eines privaten
Website-Betreibers, der selbst Frames verwendet und meine Website
(das Patchwork direkt) unter dem Menüpunkt "Links" eingebunden hat
und in seinem Frameset anzeigen läßt. Gerade der letzte Fall ärgert
mich sehr, weil hier der gewöhnliche Besucher hier sicher nicht
mehr erkennen kann, dass es mein Werk ist.

Im Moment fallen mir zwei Möglichkeiten ein, um dieser von mir un-
erwünschten Art der Deeplinks Herr zu werden:

1. Das Projekt mit sofortiger Wirkung einstellen.

2. Die gesamte Website in ein Frameset zu Packen und beim Aufruf
   des Patchworks über JavaScript den Framenamen abzufragen. Wenn
   dieser nicht stimmen sollte, wird der Besucher ebenfalls über
   JavaScript auf die Homepage zurückverwiesen.

Die erste Variante möchte ich eigentlich nicht unbedingt haben, weil
eben soviel Arbeit in dem Projekt steckt, aber auch die zweite Mög-
lichkeit gefällt mir nicht sonderlich gut, dann ich kein Fan von
Frames bin.

Weiß jemand von Euch vielleicht noch eine Alternative?

Den Referrer abfragen gefällt mir nicht sonderlich gut, da es sich
dabei um ein Feature handelt, was der Besucher zurecht deaktivieren
kann, wenn er das Bedürfnis dazu haben sollte und diese Angabe ist
ja auch mittels eines Scriptes fälschbar. Bei der clientseitigen
Lösung mittels Frames und JavaScript hingegen dürften die von mir
nicht erwünschten Deeplinker kaum eine Chance haben. Notfalls kann
ich ja auch den Namen des Frames zufällig generieren lassen oder
über ein Script in unregelmäßigen Zeitabständen ändern.

Viele Grüße,
Stefan

  1. Hallo,

    einige von Euch werden wissen, dass ich seit 1999 ein kunterbuntes
    Patchwork (http://www.patchwork.favicon.de/) gebastelt habe, wobei
    ein Haufen Arbeit in diesem Projekt steckt. Aus diesem Grund möchte
    ich, dass alle Besucher zunächst auf der Homepage landen und habe
    dort doch recht deutlich einen Hinweis platziert:

    "Bitte Links zum Patchwork ausschließlich auf http://www.patchwork.favicon.de/ und nicht auf Unterseiten setzen."

    Dieser Hinweis ist meiner Meinung eindeutig, auch wenn vielleicht
    ein Verbot juristisch gesehen wohl sinnvoller wäre.
    [...]

    Die einfachste Möglichkeit hast du anscheinend übersehen: wieso schreibst du nicht einfach auf die Seite "patchwork.html" den Text und das Copyright? Zum Beispiel über das Bild, das fällt sofort auf, stört aber nicht. Nur so eine Idee...

    Robert

    PS: Ist es möglich, dass IE6 keine png's mag?

    1. Hallo Robert,

      Die einfachste Möglichkeit hast du anscheinend übersehen: wieso schreibst du nicht einfach auf die Seite "patchwork.html" den Text und das Copyright? Zum Beispiel über das Bild, das fällt sofort auf, stört aber nicht. Nur so eine Idee...

      diese Möglichkeit kommt auf keinen Fall in Frage, da das Bild bei
      einer Auflösung von 1024x768 bildschirmfüllend ist und so soll es
      auch bleiben. Bevor ich hier meinen eigenen Anspruch in Bezug auf
      das Aussehen meines Projektes wegen einiger ... zurückstelle, werde
      ich es lieber gänzlich aus dem Netz entfernen.
      Weitere Vorschläge sind gefragt.

      PS: Ist es möglich, dass IE6 keine png's mag?

      Kann er mit Einschränkungen (http://www.libpng.org/pub/png/) anzeigen.

      Viele Grüße,
      Stefan

      PS: Die oben angesprochene Sache konntest Du natürlich nicht wissen.

      1. Hallo,

        Weitere Vorschläge sind gefragt.

        Du könntest beim Aufruf der patchwork.html-Seite hinter einem "?" einen "Passwort"-String übergeben, der dann abgefragt wird. (location.search) Nachteil ist, dass das die Verlinker auch bald bemerken - du müsstest den String also alle paar Tage ändern. Außerdem solltest du es natürlich so machen, dass bei deaktiviertem JavaScript zumindest die Patchwork-Seite angezeigt wird.

        Den Passwort-String könntest du dir vielleicht automatisch per JavaScript aus dem Datum errechnen. Das können die Verlinker zwar dann alles nachlesen und nachbauen, aber irgendwann wird's ihnen wahrscheinlich einfach zu umständlich.

        Ist allerdings - zugegebenerweise - nicht gerade der schönste Stil, weil es wohl nur in der Hälfte aller Fälle funktionieren wird.

        PS: Ist es möglich, dass IE6 keine png's mag?

        Kann er mit Einschränkungen (http://www.libpng.org/pub/png/) anzeigen.

        Danke, werd' ich mir durchlesen.

        Robert

        1. Hallo Robert,

          Du könntest beim Aufruf der patchwork.html-Seite hinter einem "?" einen "Passwort"-String übergeben, der dann abgefragt wird.

          gute Idee, an dieser Stelle benötige ich ja dann eigentlich auch
          kein JavaScript mehr. Der String kann ruhig aus dem Datum gebildet
          werden und ein serverseitiges Script prüft dann beim Aufruf der
          Seite, ob der String mit dem Tagesdatum übereinstimmt, also z.Bsp.
          patchwork.php?20020401 und wenn das nicht der Fall ist, wird ein-
          fach nix angezeigt (oder Weiterleitung zur Homepage).

          Wer so etwas dann nachbaut, der sollte wissen, was er tut und sich
          nicht beschweren, wenn er Post von meinem Anwalt bekommt, da werde
          ich dann nicht lange zögern. Im Moment muß ich Deeplinks wohl oder
          übel hinnehmen.

          Werde ich mal eine Nacht drüber schlafen und mich morgen entscheiden,
          welche der beiden Varianten ich nutze, entweder kommt die Seite in
          ein Frameset (und über JS wird der Framename geprüft) oder ich ver-
          wende die von Dir vorschlagene Sache.

          Viele Grüße,
          Stefan

          1. Hallo,

            komisch, daß hier keiner erklärt, daß ein jedliches verlinken im Geiste des Internets ist, und man ansonsten nichts im Netz zu suchen hätte, daß kam doch sonst immer gerne ;-) (konnte ich mir jetzt nicht verkneifen), aber halt, daß sind natürlich nicht meine Worte!!!

            Ich würde Dir, da ich weiß, wie gerne Du frames magst, zu der Methode mit dem Paßwort raten. (Da könnte man glatt einen Feture Artikel für so Deppen wie mich draus mache? ;-) Oh, ich höhre schon das befürchtete "Strafwort" das mit I anfängt.... ,-)))

            Aber was ich eigendlich wirklich sagen wollte: Natürlich kann man sowas nachbauen und dann eben den Schutz umgehen, aber die beiden häufigsten Gründe für unerwünschte tiefe Verlinker sind

            "dumme Dreistigkeit" (und hier schützt Dich das "dumme" vor einem Nachbauversuche seitens der Seitenbetreiber....) oder

            "Unwissenheit über Deinen  Wunsch gepaart mit Schludrigkeit bei der Recherche" (schätze ich mal bei rtl) und da reicht deren "kriminalitätsenergie" nicht aus, um nach dem publizieren der Surfempfehlung auch noch Dein Paßwort-System per Eigenbau auszuhebeln.

            Mag es vielleicht noch ein paar Oberdeppen geben, die das System (aus sportlichen Ergeiz?) aushebeln und dann doch tief verlinken, aber in der Masse Deiner bsucher könnte man einen oder zwei Links von Deppen "auf der Welt" sicherlich verschmerzen. Dafür ist Deine Arbeit zu schön und, wie ich finde, in seiner Art auch zu wichtig, als es wegen (zu recht) verletzter Eitelkeit aus dem Netz zu nehmen....

            Chräcker

            http://www.Stempelgeheimnis.de

            1. Hallo Chräcker,

              komisch, daß hier keiner erklärt, daß ein jedliches verlinken im Geiste des Internets ist, und man ansonsten nichts im Netz zu suchen hätte, daß kam doch sonst immer gerne ;-) (konnte ich mir jetzt nicht verkneifen), aber halt, daß sind natürlich nicht meine Worte!!!

              um ehrlich zu sein, ich war auch erstaunt, hatte ich doch genau
              damit schon gerechnet. Meine Antwort wäre in diesem Fall gewesen,
              dass ich es aus Betreiber nicht möchte und aus diesem Grund Mass-
              nahmen einsetzen werde (vielleicht *g*), um es zu verhindern.
              Natürlich ist mir bewußt, dass es zu den Grundpfosten des Netzes
              gehört und ich würde auch nicht im Traum auf die Idee kommen, wg.
              einem Link "auf die falsche Seite" rechtliche Schritte zu erwägen.
              Etwas anderes ist Einbinden meiner Inhalte in fremde Frameset, so
              etwas ist Diebstahl und ich habe derweil mal den Klassiker aus
              SELFHTML gegen unfaire Schaufenster-Effekte eingebaut:
              http://de.selfhtml.org/javascript/beispiele/seitenanzeige.htm

              Den Rest Deines Beitrages habe ich mit ständigem Kopfnicken gelesen,
              da ist kein Kommentar meinerseits notwendig :-)

              BTW habe ich heute mittag spontan auch an Deine Website gedacht und
              ob Du wohl ähnliche Probleme hast. Ich kam darauf, weil Du ja Deine
              Stempel als eine Art "Gesamtkunstwerk" betrachtest und sogesehen
              sind die Deeplinker sicher auch nicht unbedingt willkommen.
              Kann natürlich auch alles ganz anders sein, aber ich würde bei Web-
              sites dieser Art nie auf die Idee kommen, Unterseiten direkt zu
              verlinken, während es bei anderen Websites (z.Bsp. welche, die sich
              vorrangig im Info-Sektor befinden) praktisch unvermeidbar ist.

              Viele Grüße,
              Stefan

              1. Hi, Stefan

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

                Du könntest zusätzlich noch vorher den Refe(r)rer mit document.referrer prüfen und bei dem dir bekannten Zeitgenossen eine eindringliche Alert-Meldung ausgeben. Selbst, wenn einige Besucher ihn verändern/verhindern, bekommt die Mehrzahl der Leute deinen Text zu sehen. Das sollte selbst den hartnäckigsten Framer irgendwann nerven. Eine nette Nachricht, die über die möglichen Konsequenzen aufklärt, sollte aber auch Wirkung zeigen.

                LG Orlando

              2. Hallo,

                ;-) anfangs hatte ich sogar Frmes "dazu" genutzt, aber dann kam der Kartenservice dazu, und ich wollte nicht, daß Wiederholungsstempler die ganze Tour noch mal machen müssen, nur um mal eine E-Card zu schicken.

                Bei meiner Seite verbietet sich tiefes verlinken fast von selbst, daß kommt auch bei den Leuten so an. Lediglich bei der E-Cardseite habe ich immer ein bissel Angst, denn die könnte auch "für sich" gut verlinkt werden und würde (Eitelmodus_an) bestimmt manchen "wir bieten Stempel an"-Service aufwerten. Bisher schütze ich mich auf einer etwas selbstbetrügerischen Art: ich erstelle von der Seite keine Statistik und weiß so nicht, ob die jemand direkt verlinkt hat ;-) .... aber das würde ich mir im Zweifelsfalle schon verbeten wollen "dürfen" ....

                Chräcker

          2. Hi,

            Der String kann ruhig aus dem Datum gebildet
            werden und ein serverseitiges Script prüft
            dann beim Aufruf der Seite, ob der String mit dem
            Tagesdatum übereinstimmt, also z.Bsp.
            patchwork.php?20020401 und wenn das nicht der Fall
            ist, wird einfach nix angezeigt (oder Weiterleitung
            zur Homepage).

            Wenn schon, dann wenigstens die Ziffern transformieren und verwürfeln (hash-Funktion).
            Es darf dem Angreifer nicht möglich sein, eine "ähnliche" Zahl wie eine bereits existierende zu verwenden und damit durchzukommen.
            Wenn in dem Parameterwert der UNIX time stamp seiner Generierung drin steckt, dann kann man serverseitig seine Gültigkeit sekundengenau definieren ...

            Nächste Verschärfung: Eine Prüfsumme drauf, sagen wir mal aus weiteren 8 Ziffern, dann ist die Wahrscheinlichkeit für ein korrektes Raten des Feindes etwa 1 zu 10^8.
            Und außerdem sieht man dem Query-String in diesem Falle seine Semantik nicht mehr an.

            Viele Grüße
                  Michael
            (der so etwas Ähnliches mal für einen Kunden bauen mußte, der eine "closed user group" ohne zusätzlichen login-Vorgang verlangte - mit einem "holy referrer" innerhalb eines geschützten Bereichs)

          3. Hallo Robert,

            Du könntest beim Aufruf der patchwork.html-Seite hinter einem "?" einen "Passwort"-String übergeben, der dann abgefragt wird.

            gute Idee, an dieser Stelle benötige ich ja dann eigentlich auch
            kein JavaScript mehr. Der String kann ruhig aus dem Datum gebildet
            werden und ein serverseitiges Script prüft dann beim Aufruf der
            Seite, ob der String mit dem Tagesdatum übereinstimmt, also z.Bsp.
            patchwork.php?20020401 und wenn das nicht der Fall ist, wird ein-
            fach nix angezeigt (oder Weiterleitung zur Homepage)

            Habe mal was aehnliches programmiert. Per cronjob jeden Tag eine Random-Zahl erstellt und Copyright-Seite gleich auch dazu erstellt. Und dann per patchwork.php?20020401 wieder verglichen.

            30 Minuten Arbeit funst perfekt.

            Ciao Micha

    1. Die gesamte Website in ein Frameset zu packen und beim Aufruf
         des Patchworks über JavaScript den Framenamen abzufragen. Wenn
         dieser nicht stimmen sollte, wird der Besucher ebenfalls über
         JavaScript auf die Homepage zurückverwiesen.

    kein Fan vonFrames bin.

    Lieber Stefan,

    vielleicht ist das wirklich ein sinnvoller Einsatzbereich von Frames. Ich hatte neulich eine ähnliche Problematik, wo wir für einen Veranstalter etwas gehostet haben, weil er für seine temporäre Veranstaltungsadresse verständlicherweise nur billigen Webspace eingekauft und nicht genügend HDD auf dem Server zur Verfügung hatte. Dann hat er unsere Unterseite so verlinkt, dass es so aussah, als wäre das von ihm. Wir sollten also den Transfer bezahlen, den Werbeeffekt aber nicht mitnehmen. Da unsere Hauptseite auf Frames basiert, konnte ich ihm diese Idee mit einem netten kleinen Script etwas versauern. Ein Problem bei der ganzen Framegeschichte ist allerdings die schwierigere Wartung auf dem lokalen Rechner, denn wenn Du da die Links ausprobieren willst, greift auch dort das Script und versucht, die entsprechenden Seiten aus dem Netz nachzuladen. Damit läßt sich zwar umgehen, aber etwas nervig ist es doch. Meine Lösung ist, nur die Seiten durch ein Script zu schützen, die das auch tatsächlich nötig haben, und das siehst Du ja aus der Statistik ganz schnell.

    Ich kenne natürlich die Kritik an Frames, aber es gab doch auch immer wieder Argumente dafür. Früher konnte man dadurch ganz schön den Browserversatz und Probleme mit verschiedenen Rändern vermeiden, bei CGIs umgeht man die blöden kryptischen URLs und läßt zumindest nicht jeden die versteckten Felder in Formularen sehen. Der immer noch häufig zitierte Kritikpubkt, dass Suchmaschinen mit Frames nicht umgehen können, ist inzwischen obsolet, da unsere Seiten von allen bekannten Diensten korrekt aufgenommen werden. Da sind Links über JavaScript schon viel eher ein Problem. Das stabile und gut kontrolierbare Verhalten der Navigationsstruktur ist auch ein Argument.

    Und: Die Kritiker an Frames, die aus der ganz puristischen Ecke kommen, verschweigen häufig, dass man ohne Frames eigentlich kaum darum herumkommt, andere Techniken mit anderen Problemen einzusetzen, wenn man viel content hat, und eine übersichtliche Navigationsstruktur hinbekommen will. Ich bin oft schwer genervt, wenn ich Beiträge lese, die so tun, als habe man nichts anderes vor, als einen Brief an die liebe Oma ins Netz zu stellen.

    Aber wenn Du Frames nicht magst, setze sie doch einfach nur dort ein, wo es unbedingt erforderlich ist, etwa da, wo Dir jemand Inhalte in nennenswertem Umfang klaut. Du kannst ja auf die übrige Nutzung der Funkionalität von Frames verzichten. Vielleicht nur ein Frame im Frameset, nur temporär eingesetzt, ohne dass Deine normalen Nutzer irgendetwas merken.

    Nur ein Ansatz zu einer Alternative: Die aufrufende Seite ermitteln und wenn es keine von Deinen ist, deine Hauptseite laden. Sicher nicht unproblematisch. Das Resultat ist aber auch irritierend für den Besucher. Bei Frames kannst Du Deine Navigation nachladen, dann die passende Unterseite. So kommt er auf Deine Hauptseite und weiß gar nicht, was der Bezug zu seinem Link ist.

    Viele Grüße

    Mathias Bigge

    1. Hallo Mathias,

      vielleicht ist das wirklich ein sinnvoller Einsatzbereich von Frames.

      um mal Klartext zu reden: Es kotzt mich verdammt nochmal an, dass
      ich hier offenbar Frames einsetzen muß, weil sie als einzigste
      für mich akzeptable Variante verbleiben. Ich muß Frames einsetzen,
      obwohl ich genau deren Nachteile kenne und meine ehrlichen Besucher
      damit zu Unrecht einschränke. Und alles nur, weil einige Idioten
      im Netz meinen, sie dürfen überall sich mal etwas klauen, wo es
      ihnen gerade gefällt.

      Danke für Deinen Beitrag, auf die vielen genannten Punkte will ich
      jetzt aber nicht weiter eingehen. Stammbesucher dieses Forums wer-
      den wissen, dass ich einer der beständigsten Framegegner hier bin
      und genau so wird meine Meinung auch in Zukunft sein. Sollte ich
      in Zukunft mal genügend Zeit und Geld haben, dann werde ich Leute,
      die meine Inhalte in ihrem Frameset anzeigen und deutlich sichtbar
      als die ihren ausgeben, von meinem Anwalt verklagen lassen und
      keine Frames mehr einsetzen. So etwas hat nichts mit bösem Wille
      zu tun, aber irgendwo hört der Spaß auf und was hier einige Netz-
      idioten machen, ist schlichtweg Diebstahl und Verletzung des Ur-
      heberrechtes. Wohlgemerkt, der Link auf die Unterseite ist von mir
      nicht erwünscht, aber beim Einbinden fremder Inhalte in das eigene
      Frameset kann man sich nicht mehr mit "Sorry, wußte ich nicht."
      herausreden, so etwas wird absichtlich gemacht.

      Der Abschnitt eben hat mit Deinem Beitrag, Mathias, nicht sehr viel
      zu tun, ich wollte es nur mal erwähnt haben, dass mich diese "Ich
      kann mir alles nehmen, überall, immer und kostenlos"-Mentalität
      gehörig nervt.

      Nur ein Ansatz zu einer Alternative: Die aufrufende Seite ermitteln und wenn es keine von Deinen ist, deine Hauptseite laden. Sicher nicht unproblematisch. Das Resultat ist aber auch irritierend für den Besucher. Bei Frames kannst Du Deine Navigation nachladen, dann die passende Unterseite. So kommt er auf Deine Hauptseite und weiß gar nicht, was der Bezug zu seinem Link ist.

      Wie ich schon eben in </?m=47247&t=8531> geantwortet habe, die Seite
      hier soll optisch genau so bleiben, wie sie jetzt ist, also ohne
      irgendwelche Hinweise und ohne Navigation, genau so möchte ich es
      haben und wenn es nicht mehr möglich sein sollte, dann wird dieses
      Projekt gelöscht.
      Den Referrer abfragen kann/will ich nicht, da dieser wie schon ge-
      sagt abgestellt werden kann und ich finde, dazu habe meine Besucher
      ein gutes Recht, dessen ich sie nicht berauben will. Die Sache mit
      den Frames halte ich für die bestmögliche Lösung, aber keinesfalls
      für eine gute Lösung.

      Viele Grüße,
      Stefan

  2. Hallo Stefan

    Du könntest auch mit Sessions arbeiten.
    Auf der 1. Seite vergibst Du die Sessionid und auf den anderen leitest Du immer zur 1. Seite weiter, wenn keine gültige Sessionid angehängt ist.
    Geht ohne JavaScript und Frames und ist ziemlich unumgehbar.
    (Der Tieflinker könnte nur noch aus der 1. Seite die Sessionid rausparsen. Aber das kann man wohl in Kauf nehmen ;-)

    Grüße

    Daniel

  3. Hallo Stefan

    Im Moment fallen mir zwei Möglichkeiten ein, um dieser von mir un-
    erwünschten Art der Deeplinks Herr zu werden:

    1. Das Projekt mit sofortiger Wirkung einstellen.
    1. Die gesamte Website in ein Frameset zu Packen und beim Aufruf
         des Patchworks über JavaScript den Framenamen abzufragen. Wenn
         dieser nicht stimmen sollte, wird der Besucher ebenfalls über
         JavaScript auf die Homepage zurückverwiesen.

    3. Möglichkeit:

    Auf der Startseite setzt du den Fensternamen mit window.name="irgendwas" auf einen beliebigen Wert. Auf den Unterseiten fragst du dann ab:

    if (top!=self) {
     tue was
    } else if (window.name!="irgendwas") {
     if (!window.opera) tue was;

    }

    Die Einschränkung nicht für Opera ist leider notwendig, weil Opera 5.12 unter windows den Fensternamen wieder vergißt.

    Viele Grüße

    Antje

    Die erste Variante möchte ich eigentlich nicht unbedingt haben, weil
    eben soviel Arbeit in dem Projekt steckt, aber auch die zweite Mög-
    lichkeit gefällt mir nicht sonderlich gut, dann ich kein Fan von
    Frames bin.

    Weiß jemand von Euch vielleicht noch eine Alternative?

    Den Referrer abfragen gefällt mir nicht sonderlich gut, da es sich
    dabei um ein Feature handelt, was der Besucher zurecht deaktivieren
    kann, wenn er das Bedürfnis dazu haben sollte und diese Angabe ist
    ja auch mittels eines Scriptes fälschbar. Bei der clientseitigen
    Lösung mittels Frames und JavaScript hingegen dürften die von mir
    nicht erwünschten Deeplinker kaum eine Chance haben. Notfalls kann
    ich ja auch den Namen des Frames zufällig generieren lassen oder
    über ein Script in unregelmäßigen Zeitabständen ändern.

    Viele Grüße,
    Stefan

  4. Hallo Stefan,

    hast Du Perl oder PHP auf Deinem Server zur Verfügung? Wenn ja, dann müßte doch folgendes funktionieren:

    Verlinke von http://www.patchwork.favicon.de/ auf ein CGI, z.B. http://www.patchwork.favicon.de/cgi-local/patchwork.pl.

    patchwork.pl könnte dann (verkürzt) so aussehen:

    use CGI;
    use CGI::Carp qw(fatalsToBrowser);
    my $Cgi  = new CGI;
    print $Cgi->header;

    if ($Cgi->referer =~ !^\s*http://www.patchwork.favicon.de/?\s*$!) {
        print '
        <!-- hier den Inhalt von patchwork.html einfügen -->
        ';
        }
    else {
        print '<!-- Eine Fehlermeldung mit Link auf http://www.patchwork.favicon.de/ -->'
        }

    Grüße
       K@rl

    1. Moin!

      patchwork.pl könnte dann (verkürzt) so aussehen:

      if ($Cgi->referer =~ !^\s*http://www.patchwork.favicon.de/?\s*$!) {

      Das gerade nicht zu tun war Stefans Intention, denn Referrer müssen nicht stimmen und können auch ausgeschaltet bzw. nicht gesendet werden. Und sobald eine Methode korrekte Zugriffe auf Fehlerseiten weiterleitet, ist die Anwendung der Methode fragwürdig.

      Die Variante, ein täglich wechselndes Menü ;) bzw. eben den täglich wechselnden Link zu verwenden, gefällt mir persönlich am besten. Der Link ist dann praktisch die kostenlose Eintrittskarte.

      Natürlich ist sowas fälschbar. Aber es setzt voraus, daß der Fälscher a) die Methode erkennt, b) darauf reagieren kann und die Methode ebenfalls anwendet, und c) die Methode aktuell hält. Dürfte schwierig werden. ;)

      Ein Monat hat maximal 31 Tage, und es gibt 12 Monate. Man könnte locker jedem Tag eine mathematische Funktion zuordnen (also sowas wie sin, cos, exp, log, oder auch was zusammengesetztes), und jedem Monat noch einen konstanten Faktor, der eben gerade _nicht_ der Monatszahl entspricht. Aus dem Tagesdatum rechnet man so eine ziemlich wirre Zahl aus, die aber schön konstant bleibt an diesem Tag, und wertet auf der zweiten Seite dann aus, ob Linkparameter und Tagesdatumstempel übereinstimmen. Damit bringst du dann vermutlich jeden Linkfälscher zur Weißglut. Vor allem, wenn es die erste Hälfte des ersten Monats so aussieht, als ob tatsächlich das Datum eingesetzt wird (Multiplikation mit 1), und dann erst raffiniertere Methoden kommen.

      Naja, das Ausmalen der dummen Gesichter ist vermutlich viel schöner, als irgendwas kompliziertes auszudenken - und man sollte nicht verschweigen, daß die Fälscher sich skriptgesteuert ebenfalls durch Abrufen und parsen des Menüs den richtigen Schlüssel holen können. Und schon ist man im schönsten Wettrüsten.

      Das Androhen rechtlicher Schritte ist da vermutlich weit wirksamer.

      - Sven Rautenberg

      1. Hallo Frank,

        Ich empfehle, vor dem Antworten das ursprüngliche Posting zu lesen:

        Das Posting habe ich mir wohl durchgelesen. .. und habe mir dennoch meinen Vorschlag zu unterbreiten.

        "Den Referrer abfragen gefällt mir nicht sonderlich gut, da es sich
        dabei um ein Feature handelt, was der Besucher zurecht deaktivieren
        kann, wenn er das Bedürfnis dazu haben sollte und diese Angabe ist
        ja auch mittels eines Scriptes fälschbar."

        Den HTTP-Referrer abschalten? Wenn jemand mit einem "normalen" Browser (NS, IE) unterwegs ist? - Sorry, daber wie *das* gehen sollte ist mir nicht bekannt. Würde mich wirklich mal interessieren.

        • Wohl gemerkt: so, daß auf dem Server kein HTTP_REFERER mehr zur Verfügung steht.

        .. und wenn der Referer ausgeschaltet ist (wie immer das gehen mag ..), dann kommt die Fehlermeldung. Und daß jemand sich beim Verlinken die Mühe macht, auch noch für einen (wie auch immer zustande gebrachten) gefälschten HTTP-Referer zu sorgen halte ich für unwarscheinlich. - Eben die hier angesprochene 99,5%-Lösung.

        Moin Sven,

        if ($Cgi->referer =~ !^\s*http://www.patchwork.favicon.de/?\s*$!) {

        Und sobald eine Methode korrekte Zugriffe auf Fehlerseiten weiterleitet, ist die Anwendung der Methode fragwürdig.

        Irritieren Dich die "!"? - Die nehme ich immer wenn ich viele "/" in der RegEx habe; was ich vergessen habe ist das "m", also:
        if ($Cgi->referer =~ m!^\s*http://www.patchwork.favicon.de/?\s*$!)
                             ^
        Sorry for that.

        Und wegen Einbinden in fremde Pages verwende ich stets JavaScript:
        if(top.frames.length > 0)
        top.location.href=self.location;

        Ob Stefan's Lösung auch funktioniert habe ich n.n. probiert;
        in seinem HTML Code hat er ja:
         if(top!=self)
          top.location=self.location;

        Grüße
           K@rl

        PS: eine SSI-Umsetzung der Lösung wäre natürlich eleganter und leichter wartbar.

        1. Hi, K@rl

          Den HTTP-Referrer abschalten? Wenn jemand mit einem "normalen" Browser (NS, IE) unterwegs ist? - Sorry, daber wie *das* gehen sollte ist mir nicht bekannt. Würde mich wirklich mal interessieren.

          • Wohl gemerkt: so, daß auf dem Server kein HTTP_REFERER mehr zur Verfügung steht.

          Viele Tools bieten diese Möglichkeit, so zB auch WebWasher. Opera macht's noch einfacher, dort kann man die Übertragung nach Betätigung von [F12] ein- und ausschalten.

          .. und wenn der Referer ausgeschaltet ist (wie immer das gehen mag ..), dann kommt die Fehlermeldung. Und daß jemand sich beim Verlinken die Mühe macht, auch noch für einen (wie auch immer zustande gebrachten) gefälschten HTTP-Referer zu sorgen halte ich für unwarscheinlich. - Eben die hier angesprochene 99,5%-Lösung.

          Ich wüsste nicht, wie man den Referer _des Besuchers_ über den Weg einer HTML-Seite fälschen könnte. Ich glaube, zwar dass der Anteil der Besucher, die ihn selbst manipulieren oder unterdrücken nicht > 0,5% ist, ein Hinweis für diese Leute ist bei einer entsprechenden Abfrage jedoch empfehlenswert.

          Ob Stefan's Lösung auch funktioniert habe ich n.n. probiert;
          if(top!=self)
            top.location=self.location;

          Tut sie - natürlich :)

          LG Orlando

          1. Hi Orlando,

            Ich glaube, zwar dass der Anteil der Besucher, die
            ihn selbst manipulieren oder unterdrücken nicht

            0,5% ist, ein Hinweis für diese Leute ist bei
            einer entsprechenden Abfrage jedoch empfehlenswert.

            insbesondere kann der Anbieter ja auch noch unterscheiden, ob ein falscher oder gar kein Referrer gesendet wird.
            Falsche Referrer kann man gnadenlos blocken; bei leeren Referrern ist es Ansichtssache. (Wobei ich auch hier das Blocken für vertretbar halten würde, weil die 0.5% Leute, welche so etwas aktiv einschalten bzw. installieren, auch wissen, was sie tun und welche Folgen das haben kann.)

            Viele Grüße
                  Michael

            1. Hi, Michael

              Falsche Referrer kann man gnadenlos blocken; bei leeren Referrern ist es Ansichtssache. (Wobei ich auch hier das Blocken für vertretbar halten würde, weil die 0.5% Leute, welche so etwas aktiv einschalten bzw. installieren, auch wissen, was sie tun und welche Folgen das haben kann.)

              Bei den falschen Referrern stimme ich dir natürlich zu, da sich die Überprüfung sonst ad absurdum führen würde.

              Bei leeren Referrern sehe ich die Sache jedoch etwas anders. Schließlich hat sich der Besucher, aus welchem Grund auch immer, bewusst dazu entschlossen, ihn zu unterdrücken. Man zwingt ihn also, an seinen Einstellungen Änderungen vorzunehmen, um an die Inhalte zu gelangen. Das ist IMHO genauso unnötig, wie Javascript vorauszusetzen. Gerade technisch versierteren Leuten diesen Prügel vor die Füsse zu werfen, täte mir weh und schießt (wieder IMHO) über das Ziel hinaus.

              LG Orlando

              PS: Danke nochmals für deine Ausführungen zu deiner "zweiten Haut" ;-)

              1. Moin!

                Bei leeren Referrern sehe ich die Sache jedoch etwas anders. Schließlich hat sich der Besucher, aus welchem Grund auch immer, bewusst dazu entschlossen, ihn zu unterdrücken. Man zwingt ihn also, an seinen Einstellungen Änderungen vorzunehmen, um an die Inhalte zu gelangen. Das ist IMHO genauso unnötig, wie Javascript vorauszusetzen. Gerade technisch versierteren Leuten diesen Prügel vor die Füsse zu werfen, täte mir weh und schießt (wieder IMHO) über das Ziel hinaus.

                Ganz banales, ungeblocktes Beispiel: Jemand speichert sich die Patchworkseite als Bookmark - neuer Tag, neuer Browser, Aufruf des Bookmarks: Kein Referrer (auch wenn daran nicht rumgespielt wurde), und keine Seite. Böse Falle, wie ich finde.

                Abgesehen davon, daß all die Leute, die einfach keinen Referrer senden können (weil ein Sysadmin den ausgeschaltet hat), auch nicht auf die Seite kommen würden.

                Das ist eben die Sache: Wenn ein System auf der guten Seite nicht 100% funktioniert, bzw. die guten Besucher fälschlich Fehlermeldungen kriegen, dann ist das System Mist.

                Wenn böse Linkbesucher nicht zu 100% eine Fehlermeldung erhalten, ist das zu verschmerzen, solange überhaupt eine Anzahl Besucher die Meldung erhält.

                - Sven Rautenberg

                1. Moin!

                  Moin, moin,

                  Ganz banales, ungeblocktes Beispiel: Jemand speichert sich die Patchworkseite als Bookmark - neuer Tag, neuer Browser, Aufruf des Bookmarks: Kein Referrer (auch wenn daran nicht rumgespielt wurde), und keine Seite. Böse Falle, wie ich finde.

                  Na ja, gehen wir mal davon aus, daß die Fehlermeldung nicht einfach nur "<big>Ätsch!<big>" lautet, sondern einen kurzen, ernäuternden Text enthölt, etwa " .. nur mit eingeschaltetem HTTP-Referer .. bitte diese Seite nicht direkt verlinken .. bitte gehen Sie auf <a href="http://....">die Startseite</a> des Projekts. "

                  Also, man sieht: kein Problem das Ganze. Für Leute mit ausgeschaltetm HTTP-Referer wäre die Seite allerdings unerreichbar .. das hab' ich jetzt gelernt ;)

                  Grüße
                     K@rl

                  1. Moin!
                    Moin, moin,

                    »»» Moin, moin, moin ...

                    Die Robots nicht vergessen, die in der Regel
                    ja auch keinen Referer liefern ...

                    Hier soll die Seite sicher nicht indexiert werden,
                    aber bei anderen Einsatzmöglichkeiten
                    sollten die Robots schon ihr Futter kriegen, denke ich ...
                    (Ich finde es gerade mächtig spannend, den Quereinsteigern bei einer Frameanwendung
                    ohne JS-Weiterleitung trotzdem die Navigationselemente zur Verfügung zu stellen)

                    Das ist eben die Sache: Wenn ein System auf der guten Seite nicht 100% funktioniert, bzw. die guten Besucher fälschlich Fehlermeldungen kriegen, dann ist das System Mist.

                    Wenn böse Linkbesucher nicht zu 100% eine Fehlermeldung erhalten, ist das zu verschmerzen, solange überhaupt eine Anzahl Besucher die Meldung erhält.

                    Jou, finde ich auch - besser 1 bösen Buben nicht erwischen,
                    als 1 korrekten Refererverweigerer zu vergrätzen.

                    [Zumal ja nicht die Besucher böse sind, sondern die plöden Verlinker]

                    viele grüsse, ikke

              2. Hi Orlando,

                Bei leeren Referrern sehe ich die Sache jedoch etwas
                anders. Schließlich hat sich der Besucher, aus welchem
                Grund auch immer, bewusst dazu entschlossen, ihn zu
                unterdrücken.

                keineswegs. Es ist in der Realität viel schlimmer.

                Es gibt eine Reihe von Situationen, in denen kein Referrer geschickt wird - und das ist teilweise implementierungsspezifisch für spezielle Browser!

                Versuch mal, einen Frame mit "Open Frame in New Window" zu öffnen ... oder einen Link aus einer HTTPS-Seite, die auf einen HTTP-URL zeigt ... bei letzterem schickt Netscape 4 einen Referrer, M$IE aber nicht ... :-(

                Viele Grüße
                      Michael
                (dem am letztgenannten Problem schon mal ein Projekt gescheitert ist)

        2. hi!

          Das Posting habe ich mir wohl durchgelesen. .. und habe mir
          dennoch meinen Vorschlag zu unterbreiten.

          Stefan: "Ich will aber keine Referrer-Abfrage verwenden."
          K@rl: "Verwende doch eine Referrer-Abfrage."

          Den HTTP-Referrer abschalten? Wenn jemand mit einem "normalen"
          Browser (NS, IE) unterwegs ist?

          Opera:
            Preferences > Privacy > Enable referrer logging

          Mozilla:
            Hat eine Einstellung "network.sendRefererHeader", mit der sich die
            Übermittlung eines Referrers ausschalten lässt.

          Und ob der IE das kann, das weiß der Teufel... ;)

          Zusätzlich löschen bestimmte Proxies, zb. Werbefilter wie Webwasher,
          den Referrer-Header mit oder ohne Absicht.

          bye, Frank!

    2. hi!

      if ($Cgi->referer =~ !^\s*http://www.patchwork.favicon.de/?\s*$!) {

      Ich empfehle, vor dem Antworten das ursprüngliche Posting zu lesen:

      "Den Referrer abfragen gefällt mir nicht sonderlich gut, da es sich
      dabei um ein Feature handelt, was der Besucher zurecht deaktivieren
      kann, wenn er das Bedürfnis dazu haben sollte und diese Angabe ist
      ja auch mittels eines Scriptes fälschbar."

      bye, Frank!

  5. Hi Stefan,
    ich würde den Referer nehmen (Hi Frank http://forum.de.selfhtml.org/?m=47328&t=8531) und
    die Abfrage entsprechend setzen:

    Wenn Du per (!= /SERVER_NAME/) && (=/^http/) <-Kurzform :o) abfragst,
    sollten im else alle gucken können, die den Referer individuell eingestellt haben.

    Per ssi 'ne Kopfzeile eingefügt und fertig ist die 99,95% Lösung ;o)

    viele grüsse, ikke

    1. Wo ich gerade zum Thema schreibe ...

      Ich finde keine URL-Definition und würde gerne wissen,
      ob ein URL nur mit .htm (oder ähnlich) zum URL wird ...

      Also mein Problem:
      Ich habe 'ne Referer-Abfrage, welche nicht funktioniert,
      wenn die Datei von der Homepage (Domain ohne .htm) aufgerufen wird.

      Wenn Ihr gucken möchtet (soweit Ihr den Ref übermittelt)
      http://www.ebusi.de und http://www.ebusi.de/index.shtml.
      Das ist dieselbe Seite. Dort jeweils auf eins der unteren Symmbole klicken.
      Auf den Folgeseiten wird (z.Z.) SERVER_NAME und REFERER eingeblendet und
      der REFERER wird nur übermittelt, wenn der Klick von der *.shtml kommt.

      Was soll das - Hiiilfe

  6. Hi Stefan,

    1. Das Projekt mit sofortiger Wirkung einstellen.

    Völliger Overkill. Jede andere Lösung erscheint mir sinnvoller.

    Den Referrer abfragen gefällt mir nicht sonderlich
    gut, da es sich dabei um ein Feature handelt, was
    der Besucher zurecht deaktivieren kann, wenn er das
    Bedürfnis dazu haben sollte

    "der" Besucher? Welcher? Wie viele Deiner Besucher besitzen einen Browser, der das schon kann - im Ernst?

    und diese Angabe ist ja auch mittels eines Scriptes
    fälschbar.

    Klar. Aber wie viele Deeplinks kommen von "bösartigen" Leuten und wie viele von solchen, die einfach nur keinen Bock haben, Deine Vorschrift zu lesen bzw. sie zu befolgen?

    Das Preis/Leistungs-Verhältnis erscheint mir einfach günstig für eine Referrer-Lösung. Zumal Du serverseitig auch noch abfragen kannst, ob der Besucher einen Browser hat, der das kann. (Archivsuche: "fingerprint" - _das_ ist jetzt der Anwendungsfall dafür!)
    Klar ist das "Wettrüsten" - aber auf Deiner Seite ist es sehr einfach, während der "Feind" Deine Kristallkugel niemals exakt kennen wird.

    Ich bin für die 99.95%-Lösung, im Vergleich zum Rechtsanwalt (oder gar der Schließung der Site).

    Viele Grüße
          Michael

  7. Hallo,

    da die Sache mit dem Referrer jetzt doch schon so oft hier genannt
    wurde, habe ich mal in den Logfiles geschaut, wie es da so mit der
    Verteilung aussieht:

    2.728 Abrufe von patchwork.html insgesamt
    1.627 davon mit Referrer (www.)patchwork.favicon.de
      551 ohne Referrer
      499 mit unerwünschtem Referrer

    Die restlichen 51 Zeilen habe ich nicht ganz ausgewertet, sind aber
    zum größten Teil ebenfalls nicht erwünschte Referrer aus Statistiken
    oder Links, welchen nur sehr wenige Leute genutzt haben.

    Ich denke, damit werde ich mir die Referrer-Lösung dann doch mal
    genauer anschauen, wenn der Referrer nicht 'patchwork.favicon.de'
    enthält und wenn er nicht leer ist, dann gibt's paar auf den virt.
    Deckel, heißt im Klartext ab zur Homepage ;-)

    Die anderen Vorschläge hier im Thread schaue ich mir auch gleich
    nochmal genau an, auf jeden Fall möchte ich für die rege Beteiligung
    danken, da hat es richtig Spaß gemacht, eine Frage zu stellen :-)

    Viele Grüße,
    Stefan

    1. Hallo,

      da die Sache mit dem Referrer jetzt doch schon so oft hier genannt
      wurde, habe ich mal in den Logfiles geschaut, wie es da so mit der
      Verteilung aussieht:

      2.728 Abrufe von patchwork.html insgesamt
      1.627 davon mit Referrer (www.)patchwork.favicon.de
        551 ohne Referrer
        499 mit unerwünschtem Referrer

      Falls Du eh PHP oder Perl benutzt, dann koenntest Du auch die IP benutzen um die Seiten zu "oeffnen". D.h. In der Copyright-Seite einen Zeitstempel setzen. Ansonsten wie gesagt, taeglich aendern und im Script REFERER abfregn. Doppelt haelt besser.

      Ciao Micha