it-swarm.com.de

Verhindern Sie, dass meine Website kopiert wird

Ist es möglich, meine Website vor HTTrack Website Copier oder einem ähnlichen Programm zu schützen?
Ohne eine maximale Anzahl von HTTP-Anforderungen von Benutzern festzulegen.

31
h4ck3r

Nein, das gibt es nicht. Ohne das Festlegen von Grenzwerten für Verbindungsparameter gibt es keine Möglichkeit, dies relativ schwierig zu machen. Wenn ein legitimer Benutzer auf Ihre Website zugreifen kann, kann er deren Inhalt kopieren. Wenn er dies normal mit einem Browser tun kann, kann er ein Skript erstellen.

Sie können User-Agent-Einschränkungen, Cookie-Validierung, maximale Verbindungen und viele andere Techniken einrichten, aber keine hält jemanden davon ab, Ihre Website zu kopieren.

88
Adi

Schützen Sie den Teil der Site, den Sie schützen möchten, mit einem Benutzernamen und einem Passwort. Weisen Sie dann nur Personen einen Benutzernamen und ein Kennwort zu, die eine NDA (oder eine ähnliche) unterzeichnen, die besagt, dass sie keine Informationen von Ihrer Website extrahieren oder kopieren.

Ein weiterer Trick besteht darin, alle Ihre Inhalte aus AJAX zu laden ... und die AJAX-Daten-URL aus sich ändernden Pfaden (z. B. ~/heutiges Datum) zu laden und diese mit Javascript zu synchronisieren. Dann Selbst wenn jemand Ihre Inhalte herunterladen würde, wären die Daten innerhalb von 24 Stunden veraltet.

Selbst dann hindert nichts einen entschlossenen erfahrenen Angreifer daran, eine Offline-Kopie zu erhalten. Sie können es nur schwieriger machen, sodass es sich nicht lohnt.

33

Wie @Adnan bereits in seiner Antwort ​​ausgeführt hat, gibt es wirklich keine Möglichkeit, eine entschlossene Person daran zu hindern, Schnappschüsse Ihrer Website zu kopieren. Ich habe hier das Wort Schnappschüsse verwendet, denn das ist es, was solche Inhaltsschaber (oder Erntemaschinen ) kopieren wirklich. Sie haben keinen Zugriff auf Ihr Backend (oder sollten es zumindest nicht), in dem die Inhalte Ihrer Website tatsächlich generiert und dem Endbenutzer angezeigt werden. Das Beste, was sie tun können, ist, die Ausgabe zu kopieren, die Sie in einem solchen erstellen können Möglichkeit, die Zeit zu ändern oder entsprechend dem beabsichtigten Empfänger anzupassen (DRM-Schemata, Wasserzeichen, ...), wie @ makerofthings7 in seine Antwort ​​ausgeführt hat.

So viel zu dem, was bereits beantwortet wurde. Aber es gibt eine Sache an dieser Bedrohung, die meiner Meinung nach in der genannten Antwort noch nicht gut behandelt wurde. Der größte Teil des Scrapings von Inhalten wird nämlich von opportunistischen und automatisierten Webcrawlern durchgeführt, und wir sehen gezielte Angriffe viel seltener. Na ja, zumindest in Zahlen - ertrage es mit mir.

Diese automatisierten Crawler können tatsächlich sehr effektiv auf die schwarze Liste gesetzt werden, indem verschiedene WAF s verwendet werden (einige verwenden möglicherweise sogar honeypots , um die Bedrohungen zu bestimmen auf heuristische Weise), die die Datenbank der Domains auf der schwarzen Liste (CBLs oder Community Ban Lists, DBLs oder Domain Block Lists, DNSBL s oder DNS-basierte Blackhole-Listen, ...), von denen aus solche automatisierten Inhaltsschaber arbeiten. Diese WAFs verweigern oder gewähren den Zugriff auf Ihre Webanwendung für Inhalte, basierend auf drei Hauptansätzen:

  • Deterministisches Blacklisting : Hierbei handelt es sich um Erkennungen, die auf den Merkmalen von Webanfragen basieren, die Content Scraper durchführen. Einige davon sind: Ursprungs-IP-Adresse anfordern, Reverse DNS-aufgelöster Remote-Hostname, Weiterleitungsbestätigte Reverse DNS-Suche ( siehe Erläuterung in einer meiner Fragen hier ), Benutzeragentenzeichenfolge, Anforderungs-URL (Ihre Webanwendung könnte beispielsweise eine Honeytrap-URL-Adresse ausblenden, der ein Inhaltsschaber in einer seiner Antworten folgen könnte, nachdem festgestellt wurde, dass die Anforderung nicht von einer Whitelist-Adresse stammt, z. B. von legitimen Suchmaschinen-Crawlern/-Spinnen.) ... und andere Fingerabdruckinformationen im Zusammenhang mit automatisierten Webanfragen.

  • Heuristisches Blacklisting : Dies ist eine Möglichkeit, eine Bedrohung zu bestimmen, indem entweder die Parameter einer einzelnen Webanforderung gewichtet werden, die im deterministischen Ansatz beschrieben wird (Anti-Spam-Filter verwenden a ähnlicher Ansatz basierend auf der Berechnung von Bayes'scher Wahrscheinlichkeit ) oder durch Analyse mehrerer Webanfragen, wie z. B.: Anforderungsrate, Anforderungsreihenfolge, Anzahl der illegalen Anforderungen, ... das Dies kann dazu beitragen, festzustellen, ob die Anforderung von einem echten und beabsichtigten Benutzer oder einem automatisierten Crawler stammt.

  • Externe DNSBL/CBL/DBLs : Ich habe bereits erwähnt, dass externe DNSBL/CBL/DBLs verwendet werden (z. B. Project Honey Pot , Spamhaus , UCEPROTECT , ...), von denen die meisten tatsächlich viel nützlicher sind, als nur Spammer und zu verfolgen spambot ​​infizierte Hosts und eine Art von Straftat (z. B. Forum-Spammer, Crawling-Rate-Missbrauch,) über IP-Adressen , Hostnamen, CIDR-Bereiche, ... in Blacklists, die sie ebenfalls veröffentlichen. Einige WAFs bieten die Möglichkeit, eine Verbindung zu diesen Datenbanken herzustellen, sodass Sie nicht mehr von demselben Akteur angegriffen werden müssen, der möglicherweise bereits für dieselbe erkannte Aktivität auf einem anderen Webserver auf die schwarze Liste gesetzt wurde.

Nun muss eines ganz klar gesagt werden - keine dieser Methoden kann als kugelsicher angesehen werden! Sie entfernen die meisten beleidigenden Webanfragen, was für sich genommen wertvoll ist, und ermöglichen es Ihnen, sich besser auf diejenigen zu konzentrieren, die schwerer zu erkennende Straftäter sind, die Ihren Schutz irgendwie umgangen haben.

Es gibt natürlich unzählige Techniken für die automatische Erkennung von Crawlern/Content-Scrapern (und ihre eigenen Gegenmaßnahmen - Techniken zur Vermeidung von Erkennung), die ich hier weder beschreiben noch alle möglichen WAFs und ihre Fähigkeiten auflisten möchte, ohne Ihre Geduld testen oder Grenzen erreichen zu wollen den Zweck dieser Fragen und Antworten. Wenn Sie mehr darüber erfahren möchten, welche Techniken eingesetzt werden können, um solche unerwünschten Besucher abzuwehren, empfehle ich, die Dokumentation zu den Projekten OWASP Stinger und OWASP AppSensor durchzulesen .


Zum Hinzufügen bearbeiten : Vorschläge von HTTrack-Autoren können in den Häufig gestellten Fragen zum HTTrack-Website-Kopierer gelesen werden: So begrenzen Sie Netzwerkmissbrauch - Missbrauch FAQ für Webmaster Dokument, und die Gründe, warum eine einzelne deterministische Erkennungsmethode nicht funktioniert (abgesehen davon, dass beleidigende IP-Adressen nachträglich oder aufgrund der Erfahrung anderer Honeynets auf die schwarze Liste gesetzt werden), wenn dies der Gegner ist Wenn Sie festlegen, dass die Zeichenfolge user agent der Spinne verschleiert wird, indem Sie sie auf eine der vielen Zeichenfolgen für Benutzeragenten von echten und legitimen Webbrowsern setzen und die Anweisungen robots.txt nicht respektieren, wird dies durch einen Blick durch die HTTrack-Benutzerhandbuch . Um Ihnen das Lesen zu ersparen, enthält HTTrack einfache Konfigurations- und Befehlszeilenflags, damit es im Stealth-Modus funktioniert und für einfachere Erkennungstechniken genauso harmlos wie jeder andere legitime Benutzer erscheint.

31
TildalWave

Alles, was der menschliche Benutzer sieht , kann er aufzeichnen. Wie @Adnan betont, ist dies ziemlich einfach und kann automatisiert werden.

Einige Standorte haben jedoch immer noch einen relativen Erfolg bei der Verhinderung von Massenschlürfen. Betrachten Sie zum Beispiel Google Maps . Viele Menschen haben gelegentlich versucht, hochauflösende Karten großer Gebiete durch Skripterstellung wiederherzustellen. Einige haben es geschafft, aber die meisten wurden von Googles Verteidigung erfasst. Es kommt daher vor, dass es schwierig ist, einen automatischen Downloader zu erstellen, der sich aus Sicht des Servers so verhält, als ob er unter menschlicher Kontrolle wäre. Menschen haben alle Arten von Latenzen und Nutzungsmustern, die ein kluger Systemadministrator bemerken und überprüfen kann.

Ähnliche Tricks werden beispielsweise für Stack Exchange ausgeführt. Wenn Sie versuchen, den Zugriff auf die Site zu automatisieren, werden Sie bald zu einer Seite mit einem CAPTCHA weitergeleitet.

Letztendlich ist diese Art der Sicherheit nicht sehr befriedigend, da Verteidiger und Angreifer gleichermaßen gleichberechtigt sind: Sie ist gerissen gegen gerissen. Das ist also teuer: Es erfordert Denken und Wartung. Einige Websites tun dies jedoch trotzdem.

Eine generische Möglichkeit für Angreifer, Sicherheitsmaßnahmen gegen die Automatisierung zu umgehen, besteht darin, das Schlürfen mit tatsächlichen Menschen zu "automatisieren". In einigen Ländern können sehr billige menschliche Arbeitskräfte eingestellt werden.

16
Tom Leek

Ich würde das, was @Adnan sagt, qualifizieren, um hinzuzufügen, dass, obwohl es im Allgemeinen keine Möglichkeit gibt, das Auswaschen von Websites zu verhindern im Laufe der Zeit, ein bestimmtes Tool möglicherweise ein Verhalten aufweist, das mit einiger Sicherheit erkannt werden kann, sobald eine bestimmte Anzahl von Anforderungen vorliegt gemacht worden. Die Reihenfolge, in der auf URLs zugegriffen wird, kann deterministisch sein, z. B. Tiefe zuerst, Breite zuerst, aufsteigend oder absteigend in alphabetischer Reihenfolge, Reihenfolge, in der sie im DOM angezeigt wurden, und so weiter. Das Intervall zwischen Anforderungen kann ein Hinweis darauf sein, ob der Agent einen Javascript-Code (außer NoScript und ähnlichem) erfolgreich ausgeführt hat, die Clientunterstützung für die Browser-Leistungs-API, die Zeit zwischen Anforderungen im Verhältnis zur Seitenkomplexität und ob zwischen ihnen ein logischer Fluss besteht oder nicht Anfragen. Wenn ein Website-Leacher dies nicht berücksichtigt, haben Sie möglicherweise eine Chance. Die Überprüfung von Benutzeragenten sollte nicht effektiv sein, da ein guter Leacher vorgibt, ein bekannter Bot zu sein. Wenn Sie also nicht auch Google und andere Suchmaschinen ausschließen möchten, ist die Kenntnis der von Suchmaschinen verwendeten IPs hilfreich.

6
Nick

Erstens können Sie nur verhindern, dass Ihre Website kopiert wird, indem Sie sie nur für Sie öffentlich machen.

Eine Möglichkeit, die Leute davon zu überzeugen, ist mit legalen Mitteln. Ich bin kein Anwalt, daher weiß ich nicht, welche Schritte Sie unternehmen sollten. Wenn Ihr Inhalt original ist, können Sie das Urheberrecht oder ähnliches einschränken.

Ich denke, wenn Sie befürchten, dass Ihre Website kopiert wird, muss es sich um eine wirklich, wirklich, wirklich großartige Website handeln.

4
jsedano

Kurze Antwort: Nein. Wenn der Benutzer eine Seite lädt, kann er HTML durch Anzeigen der Quelle kopieren.

Wenn der Website-Kopierer einen bestimmten Benutzeragenten hat, können Sie diesen blockieren. Einzelheiten finden Sie unter Stapelaustausch.

Eine andere Lösung könnte darin bestehen, eine Flash-Webseite zu erstellen. diese sind sowieso schwer von Hand zu kopieren.

Andernfalls würde ich alles in ein Verzeichnis mit eingeschränktem Zugriff stellen, das nur serverseitige PHP -Skripte abrufen können. Wenn die Seite dann mit vielen Includes erstellt wurde (eines für eine Navigationsleiste, eines für Header, eines für Javascript, eines für Footer, eines für Body Content), erstellen Sie ein anderes Verzeichnis von PHP-Dateien, die das geschützte Verzeichnis mit Includes lesen, und machen Sie dann ein AJAX, das diese PHP Dateien dynamisch lädt. Es würde es für alles schwierig machen, es zu kopieren, ohne das JavaScript zu rendern (obwohl ich nicht weiß, ob dies die Software oder eine Person mit einem Live-Code-Inspektionstool stoppen würde.

Oder Sie können eine Art von Human-Verification auf Ihrer Site platzieren, sodass ein geschütztes PHP Verzeichnis-Include nicht aufgerufen wird, es sei denn, der Benutzer klickt speziell auf ein DOM-Objekt ohne Link (wie eine Zeile mit der Aufschrift "hier eingeben"). ), wodurch der Inhalt geladen wird.

4
A L

Haftungsausschluss: Dies ist eine böse Antwort. Ich kann keines der folgenden Dinge gutheißen.


Moderne Browser sind in der Lage, generische (Turing-vollständige) Berechnungen mit Javascript und möglicherweise anderen Mitteln durchzuführen. Selbst die grundlegenden HTML + CSS-Rendering-Engines sind unglaublich ausgefeilte Software, mit der Inhalte auf verschiedene Weise angezeigt (oder ausgeblendet) werden können. Wenn dies nicht ausreicht, stellen alle modernen Browser grafische Grundelemente zur Verfügung, beispielsweise über SVG und Canvas, und ermöglichen das Herunterladen benutzerdefinierter Schriftarten zum Rendern von Text.

Wenn Sie all dies und noch einige mehr zusammenfassen, werden Sie feststellen, dass zwischen dem Quellcode der Site und den Pixeln, aus denen die Buchstaben und Wörter bestehen, die der Benutzer lesen kann, mehrere Ausführungsebenen bestehen.

Alle diese Ausführungsebenen können verschleiert und/oder ausgenutzt werden.

Sie können beispielsweise Markups generieren, die wenig oder gar keine Ähnlichkeit mit der Grafikausgabe haben, um das Betrachten der HTML-Quelle Ihrer Website zu einer sinnlosen Übung zu machen. Sie können ein HTML-Tag pro Buchstabe verwenden, sie mit einer kreativen Verwendung von float: Und position: Neu anordnen, einige davon mit komplexen, generierten CSS-Regeln ausblenden und weitere hinzufügen, die nicht vorhanden waren mit CSS-generierten Inhalten.

Sie können eine Schriftart erstellen, die eine benutzerdefinierte Zuordnung zwischen Zeichencodes und Glyphen verwendet, sodass beim Kopieren und Einfügen Ihres Inhalts völliger Müll oder sogar Schimpfwörter entstehen! Sie können Buchstaben in zwei oder mehr Teile teilen und Unicode-Kombinationszeichen verwenden, um sie wieder zusammenzusetzen. Sie können dies alles mit einem dynamischen Generator tun und für jede HTTP-Anforderung ein neues zufälliges Meisterwerk der Verschleierung erstellen.

Sie können ein Programm schreiben, das komplexe Javascript-Algorithmen erstellt, die beim Ausführen auf dem Client einige erforderliche Puzzleteile ausfüllen, sodass ohne Javascript-Unterstützung und eine angemessene Menge an Client-CPU-Zeit das Markup allein nutzlos wäre. 50 ms moderne CPU-Zeit werden von den meisten nicht bemerkt und reichen aus, um einige ziemlich böse Algorithmen auszuführen.

Bonuspunkte, wenn Sie versuchen, Ihre eigene verschleierte Website mit einem kopflosen Browser zu kratzen, um einen vollständigen CSS- und Javascript-Stapel zu erhalten. Versuchen Sie dann, Wege (oder Heuristiken) zu finden, um einen echten Browser vom kopflosen zu unterscheiden. Fügen Sie dann einige Fallen in den generierten Javascript-Code ein, sodass der Algorithmus, wenn er in den Fall eines kopflosen Browsers fällt, in eine Endlosschleife gerät oder den Browser zum Absturz bringt oder Schimpfwörter und Anfälle auf dem Bildschirm erzeugt.

Diese sind mir auf den Kopf gestellt, es gibt (zählbar) unendlich viele andere Möglichkeiten, mit den Computern der Leute zu ficken.

Jetzt sei ein guter Junge/Mädchen und nimm deine blaue Pille :-)

4
Tobia

Zunächst einmal, wie andere gesagt haben - alles, was Sie sehen können, können Sie mit verschiedenen Methoden kopieren. Es hängt davon ab, warum Sie verhindern möchten, dass Ihre Website kopiert wird. Die effektivste Methode ist jedoch wahrscheinlich das Hinzufügen von Wasserzeichen, damit jeder weiß, woher sie stammt. Vielleicht würde sogar eine höfliche Mitteilung, in der die Leute gebeten werden, Ihre Website nicht zu kopieren, nicht fehlen.

Zurück zu Ihrer ursprünglichen Frage und wie Sie verhindern können, dass Software Websites kopiert, glaube ich, dass CloudFlare über eine Webanwendungs-Firewall verfügt. Ich weiß mit Sicherheit, dass der Acunetix Web Vulnerability Scanner keine Website scannt, die CloudFlare verwendet. Es ist eine kostenlose Lösung und sollte auch dazu beitragen, Ihre Website zu beschleunigen.

Es gibt jetzt jedoch eine narrensichere Lösung und alles kann umgangen werden. Das Beste, was Sie tun können, ist, eine Kombination der Antworten hier zu verwenden, je nachdem, wie dringend Sie Ihre Website schützen müssen/möchten. Der beste Rat ist jedoch, wenn Sie nicht möchten, dass es kopiert wird, lassen Sie es nicht zu.

4
Andy

Sogar AJAX mit Datumsparametern kann dupliziert werden. Ich habe Websites mit schweren AJAX mit GET/POST-Parametern gekratzt. Wenn ich den Browser wirklich emulieren muss, I) Ich kann immer nur Selen oder etwas Ähnliches verwenden. Ich kann immer einen Weg finden, eine Site zu kratzen, wenn ich es wirklich wollte. Captcha ist wahrscheinlich die schwierigste Sache. Selbst dann gibt es den Captcha-Scharfschützen und andere Module, die dabei helfen Bereiche.

3
PythonIsGreat

Schauen Sie sich diese Links an, Sie können eine Lösung daraus erhalten :)

Wie stoppe ich HTTrack?

Verwenden Sie robots.txt, um zu verhindern, dass eine Website kopiert wird?

OR

Am einfachsten ist es, die Browser-ID zu identifizieren, die Ihre Seite durchsucht, wenn es sich um eine htttrack-Blockierung handelt (Sie müssen Ihren Server konfigurieren oder Ihre Programmierkenntnisse verwenden, um die verschiedenen Seiten entsprechend zu laden).

Vielen Dank..

3
Java D