it-swarm.dev

Impedisci che il mio sito venga copiato

È possibile proteggere il mio sito da HTTrack Website Copier o da un programma simile?
Senza impostare un numero massimo di richieste HTTP dagli utenti.

31
h4ck3r

No, non c'è modo di farlo. Senza impostare i limiti dei parametri di connessione, non c'è nemmeno modo di renderlo relativamente difficile. Se un utente legittimo può accedere al tuo sito Web, può copiarne il contenuto e se può farlo normalmente con un browser, può copiarlo.

È possibile impostare restrizioni utente-agente, convalida dei cookie, connessioni massime e molte altre tecniche, ma nessuna fermerà qualcuno determinato a copiare il tuo sito Web.

88
Adi

Proteggi la parte del sito che desideri proteggere con un nome utente e una password. Quindi assegna un nome utente e una password solo alle persone che firmano un accordo di non divulgazione (o simili) che dicono che non estrarranno o copieranno informazioni dal tuo sito.

Un altro trucco è caricare tutto il contenuto da AJAX ... e caricare l'URL dei dati AJAX dai percorsi che cambiano (come ~/oggi-data) e sincronizzarlo con javascript. Quindi anche se qualcuno dovesse scaricare i tuoi contenuti, i dati sarebbero obsoleti entro 24 ore.

Anche in questo caso, nulla impedirà a un determinato aggressore qualificato di ottenere una copia offline, puoi solo renderlo più difficile, quindi non vale la pena.

33

Come ha già sottolineato @Adnan in la sua risposta , non c'è davvero modo di impedire a una determinata persona di copiare le istantanee del tuo sito web. Ho usato Word snapshot qui, perché è questo che content scrapers (o harvesters ) stanno davvero copiando. Non hanno (o almeno non dovrebbero) avere accesso al tuo back-end in cui i contenuti del tuo sito web sono effettivamente generati e visualizzati all'utente finale, quindi il meglio che possono fare è copiarne l'output, uno che puoi generare in tali modo di cambiare nel tempo o regolare in base al destinatario previsto (schemi DRM, watermarking, ...), come ha sottolineato @ makerofthings7 in la sua risposta .

Quindi questo su ciò che è già stato risposto. Ma c'è una cosa su questa minaccia che ritengo non sia stata ancora ben coperta nella risposta citata. Vale a dire, la maggior parte di tali scraping dei contenuti viene eseguita da crawler web opportunistici e automatizzati e vediamo attacchi mirati molto più rari. Beh, almeno in numero - abbi pazienza.

Questi crawler automatici possono effettivamente essere inseriti nella lista nera in modo abbastanza efficace attraverso l'uso di vari WAF s (alcuni potrebbero persino usare honeypots per determinare le minacce in modi euristici) che mantengono aggiornato il database dei domini nella lista nera (CBL o Elenchi di ban di comunità, DBL o Elenchi di blocchi di dominio, DNSBL so Elenchi di blackhole basati su DNS, ...) da dove operano questi raschiatori di contenuti automatizzati. Questi WAF negheranno o concederanno l'accesso ai tuoi contenuti che servono l'applicazione web sulla base di tre approcci principali:

  • Blacklist deterministica : si tratta di rilevamenti basati sulle caratteristiche delle richieste Web che gli scraper di contenuti effettueranno. Alcuni di questi sono: Richiedi indirizzo IP di origine, Nome host remoto risolto DNS inverso, Ricerca DNS inversa confermata in avanti ( vedere la spiegazione in una delle mie domande qui ), Stringa agente utente, URL richiesta (l'applicazione Web potrebbe ad esempio nascondere un indirizzo URL Honeytrap che un raschietto contenuto potrebbe seguire in una delle sue risposte, dopo aver determinato che la richiesta non proviene da un indirizzo autorizzato come legittimi crawler/spider dei motori di ricerca) ... e altre informazioni relative alle impronte digitali associate a richieste Web automatizzate.

  • Lista nera euristica : questo è un modo per determinare una minaccia ponderando i parametri di una singola richiesta web descritta nell'approccio deterministico (i filtri antispam utilizzano un approccio simile basato sul calcolo probabilità bayesiana ) o analizzando più richieste Web, come: Tasso di richiesta, Ordine di richiesta, Numero di richieste illegali, ... che potrebbe aiutare a determinare se la richiesta proviene da un utente reale e previsto o da un crawler automatizzato.

  • DNSBL/CBL/DBL esterni : ho già menzionato affidarsi a DNSBL/CBL/DBL esterni (ad es. Project Honey pot , Spamhaus , UCEPROTECT , ...), molti dei quali sono in realtà molto più utili del semplice tenere traccia degli spammer e spambot host infetti e mantieni un tipo di offesa (es. spammer del forum, abuso della velocità di scansione,) in cima agli indirizzi IP , nomi host, intervalli CIDR, ... nelle liste nere che pubblicano anche. Alcuni WAF arriveranno con la possibilità di connettersi a questi database, risparmiando il problema di essere presi di mira dallo stesso attore che potrebbe essere già stato inserito nella lista nera per la stessa attività rilevata su un altro server Web.

Ora, una cosa deve essere detta abbastanza chiaramente: nessuno di questi metodi può essere considerato a prova di proiettile! Rimuoveranno la maggior parte delle richieste Web offensive, il che è di per sé prezioso e ti consentiranno di concentrarti meglio su quelli più difficili da rilevare i trasgressori che in qualche modo hanno bypassato le tue protezioni.

Esistono ovviamente innumerevoli tecniche sia per il rilevamento automatizzato di crawler/content scrapper (sia per le loro contromisure - tecniche di prevenzione del rilevamento) che non descriverò qui, né elencherò tutti i possibili WAF e le loro capacità, non volendo testare la tua pazienza o raggiungere limiti di lo scopo di queste domande e risposte. Se desideri saperne di più su quali tecniche possono essere utilizzate per contrastare tali visitatori indesiderati, ti consiglio di leggere la documentazione sui progetti OWASP Stinger e OWASP AppSensor .


Modifica per aggiungere : I suggerimenti degli autori di HTTrack possono essere letti nelle FAQ della fotocopiatrice di siti Web HTTrack: come limitare gli abusi di rete - Abuso FAQ per i webmaster documento e i motivi per cui un singolo metodo deterministico di rilevamento non funzionerà (a meno di inserire nella blacklist gli indirizzi IP offensivi dopo il fatto o attraverso l'esperienza di altri honeynet), se l'avversario è impostato per offuscare il ragno user agent stringa impostandola su una delle tante stringhe di user agent di browser Web reali e legittimi e mancanza di rispetto robots.txt direttive, diventa piuttosto evidente guardando attraverso HTTrack Users Guide . Per evitare il fastidio di leggerlo, HTTrack include semplici flag di configurazione e della riga di comando per farlo funzionare in modalità invisibile e apparire altrettanto benevolo come qualsiasi altro utente legittimo con tecniche di rilevamento più semplici.

31
TildalWave

Tutto ciò che l'utente umano vede , può registrare. Come sottolinea @Adnan, questo è piuttosto semplice e può essere automatizzato.

Tuttavia, alcuni siti hanno ancora un discreto successo nel dissuadere il bere pesantemente. Considera, ad esempio, Google Maps . Molte persone hanno, occasionalmente, cercato di recuperare mappe ad alta definizione di grandi aree tramite script. Alcuni ci sono riusciti, ma la maggior parte sono stati catturati dalle difese di Google. Accade così che sia difficile creare un downloader automatico che agisca, dal punto di vista del server, come se fosse sotto il controllo umano. Gli umani hanno ogni sorta di latenze e modelli di utilizzo che un astuto amministratore di sistema può notare e controllare.

Trucchi simili vengono eseguiti, ad esempio, Stack Exchange . Se provi ad automatizzare l'accesso al sito, verrai presto reindirizzato a una pagina con un CAPTCHA .

In definitiva, questo tipo di sicurezza non è molto soddisfacente perché il difensore e l'attaccante sono su un piano di parità: è astuzia contro l'astuzia. Quindi, questo è costoso: richiede pensiero e manutenzione. Tuttavia, alcuni siti lo fanno comunque.

Un modo generico per gli aggressori di sconfiggere le misure di sicurezza anti-automazione è quello di "automatizzare" lo slurping con gli umani reali. Alcuni lavoratori umani a basso costo possono essere assunti in alcuni paesi.

16
Tom Leek

Qualificherei ciò che dice @Adnan per aggiungere che, sebbene in generale non sia possibile impedire la lisciviazione del sito nel tempo, uno strumento specifico può mostrare un comportamento che può essere rilevato con una certa certezza una volta che un certo numero di richieste ha stato fatto. L'ordine a cui si accede agli URL può essere deterministico, ad esempio profondità in primo luogo, ampiezza in primo luogo, crescente o decrescente in ordine alfabetico, ordine in cui sono comparsi nel DOM e così via. L'intervallo tra le richieste può essere un indizio, se l'agente ha eseguito correttamente un codice javascript (NoScript e simili a parte), supporto client per l'API delle prestazioni del browser, tempo trascorso tra le richieste relative alla complessità della pagina e se esiste o meno un flusso logico tra richieste. A meno che un leacher del sito web non tenga conto di ciò, potresti avere una possibilità. Il controllo dell'agente utente non dovrebbe essere efficace in quanto un buon insegnante fingerebbe di essere un bot noto, quindi se non si desidera escludere anche Google e altri motori di ricerca, sarebbe utile conoscere l'IP utilizzato dai motori di ricerca.

6
Nick

Prima di tutto, l'unico modo per impedire la copia del tuo sito è in realtà non renderlo pubblico a nessuno tranne te.

Un modo in cui potresti provare a convincere le persone a farlo è con mezzi legali, non sono un avvocato, quindi non so quali passi dovresti prendere, se il tuo contenuto è originale potresti limitare il copyright o qualcosa di simile.

Penso che se temi che il tuo sito possa essere copiato, deve essere un sito Web davvero eccezionale.

4
jsedano

Risposta breve, no, se l'utente carica una pagina, l'utente può copiare HTML visualizzando l'origine.

Se la copiatrice del sito Web ha un particolare user agent, puoi bloccarlo. Vedi Stack Exchange per i dettagli.

Un'altra soluzione potrebbe essere quella di creare una pagina Web Flash; quelli sono comunque difficili da copiare a mano.

Altrimenti, metterei tutto in una directory con accesso limitato che solo gli script PHP sul lato server possono recuperare. Quindi se la pagina è costruita con molti include (uno per una barra di navigazione, uno per l'intestazione, uno per javascript, uno per il piè di pagina, uno per il contenuto del corpo), crea un'altra directory di file php che legga la directory protetta con include, quindi crea un AJAX che carica dinamicamente quei file PHP. Sarebbe difficile per qualsiasi cosa copiarlo senza eseguire il rendering di JavaScript (anche se non so se ciò fermerebbe il software o un individuo con uno strumento di ispezione del codice live.

Oppure puoi inserire una sorta di verifica umana sul tuo sito in modo che una directory protetta PHP non venga chiamata a meno che l'utente non faccia specificamente clic su un oggetto DOM non collegato (come una riga che dice "inserisci qui") che attiva il contenuto da caricare.

4
A L

Disclaimer: questa è una risposta cattiva. Non perdono nessuna delle seguenti condizioni.


I browser moderni sono in grado di eseguire calcoli generici (completi di Turing), tramite Javascript e possibilmente con altri mezzi. Anche i loro motori di rendering HTML + CSS di base sono pezzi di software incredibilmente elaborati, in grado di visualizzare (o nascondere) il contenuto in vari modi. Se ciò non bastasse, tutti i browser moderni rendono disponibili le primitive grafiche, ad esempio tramite SVG e Canvas, e consentono il download di caratteri personalizzati con cui eseguire il rendering del testo.

Se metti insieme tutto questo e alcuni altri, scoprirai che ci sono una serie di livelli di esecuzione tra il codice sorgente del sito e i pixel che compongono le lettere e le parole che l'utente può leggere.

Tutti questi livelli di esecuzione possono essere offuscati e/o sfruttati.

Ad esempio, puoi generare markup che ha poca o nessuna somiglianza con l'output grafico, per rendere la ricerca della fonte HTML del tuo sito web un esercizio di futilità. Puoi utilizzare un tag HTML per lettera, riordinandoli con un uso creativo di float: e position:, nascondendone alcune con regole CSS complesse e generate e aggiungendo altre che non c'erano, con contenuti generati da CSS.

È possibile creare un carattere che utilizza una mappatura personalizzata tra codici carattere e glifi, in modo che copiare e incollare il contenuto produrrebbe immondizia totale o addirittura parolacce! Puoi dividere le lettere in due o più pezzi e usare Unicode combinando i caratteri per rimetterli insieme. Puoi fare tutto questo con un generatore dinamico, creando un nuovo capolavoro casuale di offuscamento per ogni richiesta HTTP.

Puoi scrivere un programma che creerà complessi algoritmi Javascript, che quando eseguito sul client riempirà alcuni pezzi del puzzle richiesti, in modo che senza il supporto Javascript e una discreta quantità di tempo della CPU client, il markup da solo sarebbe inutile. 50ms di tempo di CPU moderno sono trascurati dalla maggior parte e sono sufficienti per eseguire alcuni algoritmi piuttosto malvagi.

Punti bonus se provi a raschiare il tuo sito Web offuscato utilizzando un browser senza testa, al fine di avere uno stack CSS e Javascript completo. Quindi prova a trovare modi (o euristiche) per distinguere un browser reale da quello senza testa. Quindi inserisci alcune trappole nel codice Javascript generato, in modo che quando cade nella custodia del browser senza testa, l'algoritmo si inserisce in un ciclo infinito o si arresta in modo anomalo nel browser o genera volgarità e lampi che inducono convulsioni sullo schermo.

Questi sono in cima alla mia testa, ci sono (innumerevoli) infiniti altri modi di fottere con i computer delle persone.

Ora sii un bravo ragazzo/ragazza e prendi la tua pillola blu :-)

4
Tobia

Prima di tutto, come altri hanno già detto, tutto ciò che vedi può essere copiato, usando vari metodi. Dipende dal motivo per cui si desidera impedire la copia del sito Web, ma il metodo più efficace sarebbe probabilmente quello di aggiungere filigrane in modo che tutti sappiano da dove proviene. Forse anche un cortese avviso che chiede alle persone di non copiare il tuo sito Web non perderebbe.

Tuttavia, tornando alla tua domanda originale e su come impedire al software di copiare il sito Web, credo che CloudFlare abbia un firewall per applicazioni web. So sicuramente che Acunetix Web Vulnerability Scanner non eseguirà la scansione di un sito Web che utilizza CloudFlare. È una soluzione gratuita e dovrebbe anche aiutare ad accelerare il tuo sito web.

Ora esiste una soluzione infallibile e tutto può essere eluso. La cosa migliore che puoi fare è usare una combinazione delle risposte qui, a seconda di quanto hai bisogno/desideri proteggere il tuo sito web. Il miglior consiglio però è se non lo vuoi copiare, non lasciare che le persone lo abbiano.

4
Andy

Anche AJAX con i parametri della data può essere duplicato. Ho raschiato i siti con heavy AJAX utilizzando i parametri GET/POST. Se ho davvero bisogno di emulare il browser I posso semplicemente usare il selenio o qualcosa del genere. Posso sempre trovare un modo per demolire un sito se volevo davvero. Captcha è probabilmente la cosa più difficile da affrontare. Anche allora c'è il cecchino Captcha e altri moduli per aiutarli in questi le zone.

3
PythonIsGreat

Guarda questi link per ottenere una soluzione da questo :)

Come fermare HTTrack?

tilizzare robots.txt per impedire che il sito Web venga strappato?

OR

Il modo più semplice è identificare l'ID del browser che sta navigando nella tua pagina, se è htttrack bloccalo, (devi configurare il tuo server o usare la tua abilità di programmazione per caricare di conseguenza la diversa pagina)

Grazie..

3
Java D