2013-01-29 18 views
15

Recentemente ho svolto attività di web design per una persona. Ho continuato a mostrargli i progressi dandogli un link al suo nuovo sito sul mio server di sviluppo. Verso la fine del completamento, lasciò tutti i contatti con me e io ero completamente incapace di afferrarlo. Di recente ho dato un'occhiata al suo sito e ha mescolato una combinazione del suo vecchio sito, con quello nuovo che stavo creando. Ho pensato che forse l'ha ridisegnato lui stesso dopo aver visto la mia versione, tuttavia una rapida occhiata al suo codice sorgente mostra che le parti che ho riconosciuto erano completamente copiate solo visualizzando il codice sorgente sul mio server di sviluppo. Quindi mi ha completamente irrigidito e non ho ricevuto alcun pagamento da lui.Impedisci il furto del codice sorgente HTML

Basta chiedersi se c'è comunque modo di prevenirlo in futuro?

Il mio primo pensiero è stato l'offuscamento, ma una rapida ricerca mostra che farlo in html non è raccomandato e comunque non è infallibile.

Ovviamente questa è una lezione appresa per me per ottenere una sorta di pagamento anticipato in primo luogo, ma essere in grado di impedire che il lavoro venga rubato così facilmente in futuro sarebbe bello.

Esistono sviluppatori che hanno riscontrato problemi simili? Come fai a mostrare a qualcuno i progressi del tuo lavoro senza dare loro un accesso giornaliero alla tua fonte?

+15

Una parola: contratti –

+8

Basta scrivere codice veramente brutto. In questo modo, nessuno vorrà rubarlo :) O una NDA. –

+0

Si potrebbe prendere in considerazione la possibilità di postare questo sui programmatori (http://programmers.stackexchange.com/) non in futuro, anche se questa domanda è un po 'grigia. – AlexMA

risposta

6

IMHO un buon modo sarebbe presentazioni ad es. con TeamViewer o un software simile quando non puoi andare al tuo cliente.

È inoltre possibile fornire schermate o un accesso remoto di base con vnc o così, dove il cliente può vedere ma non touch il sito.

+0

Ho avuto un po 'di tempo un * cliente * che aveva bisogno di un prototipo per la sua banca. Così ho costruito una pagina di simulazione con la piena funzionalità (solo il front-end per i clienti) gratuitamente ho pensato di ottenere un lavoro per la pagina reale. Poi ho sentito di nuovo 7 mesi dopo dalla persona che mi ha detto che la pagina è ora online e pronta per i clienti. È stato perfetto! Come dovrei reagire ?! – rekire

+2

Invia loro una fattura. – iambriansreed

+0

Mi piace l'idea di accesso remoto. Vorrei averlo considerato prima. Gli screenshot erano ciò a cui stavo pensando in futuro, ma probabilmente installerò una macchina virtuale solo per TeamViewer con la possibilità di accedere al mio server di sviluppo. Grazie per il suggerimento !! – Badams

-3

Si potrebbe semplicemente eseguire il sito sul proprio laptop o mettere l'intero sito dietro una pagina di accesso che richiede una password. Saresti in grado di fare dimostrazioni dal vivo, ma il cliente non avrebbe accesso al sito fino a quando non sarai stato pagato.

+3

Ciò non fermerebbe necessariamente il furto del codice sorgente HTML/CSS. In particolare, il nascondiglio dietro un suggerimento di accesso. – Jeremy1026

+0

@ Jermey1026 - Stavo pensando alla domanda in termini di Java, che consente di inserire JSP/HTML in WEB-INF, che non è accessibile se non si utilizza il servlet di accesso. – Shane

-1

È possibile crittografare il codice sorgente con javascript. Prova questo sito: http://www.iwebtool.com/html_encrypter Non ho mai usato questo strumento da solo e non so se tutto funziona bene, ma penso che valga la pena dare uno scatto. Puoi sempre caricare il normale codice sorgente dopo essere stato pagato. Inoltre, assicurati di avere le informazioni di contatto corrette del tuo cliente in futuro. Raccomando inoltre di utilizzare un contratto in futuro in modo che il tuo cliente sia legalmente obbligato a pagarti. Un'altra opzione possibile è dare al tuo cliente nient'altro che uno screenshot del sito, ma ovviamente il tuo sito diventerà statico.

+0

Non c'è modo di crittografare "in modo affidabile" HTML/JavaScript. Una volta raggiunto il mio browser, posso ispezionare il DOM e ottenere il codice sorgente. Post scriptum Tutto ciò che lo "strumento" fa è: 'document.write (unescape (...))'. –

0

Che cosa si potrebbe fare, è utilizzare HTML Image Maps con schermate per creare una versione di base e interattiva del prodotto finale.

+0

In realtà non ci avevo mai pensato! Potrei doverlo considerare per eventuali progetti futuri di grandi dimensioni, ma il consenso generale sembra essere quello di ottenere tutto per iscritto, il che mi rendo conto che in realtà dovrei fare lo stesso. Grazie per il suggerimento! – Badams

6

Le altre risposte qui sono solo un insieme di hack che possono essere annullati.

Il lato client, HTML, CSS e JS è costituito da tutte le tecnologie open source. Mentre potresti dedicare molto tempo a cercare di offuscare il tuo codice client, la cosa migliore da fare è semplicemente praticare la logica aziendale migliore.

Le opzioni si aprono ampiamente sulle protezioni per il codice lato server ma la domanda sembra concentrarsi sul codice lato client.

Per clienti affidabili e affermati, sono molto più flessibile, ma i nuovi clienti sono molto attento. Chiedo pagamenti progressivi. Per ogni deliverable è previsto un pagamento. In questo modo, se la relazione viene mai interrotta, entrambe le parti hanno ciò che vogliono.

Quando ti rendi un marchio facile per i truffatori, attiri solo truffatori.

+0

Sì, mi rendo conto ora che la risposta è una migliore logica di business, sfortunatamente qualcosa di brutto deve accadere perché io lo impari. Potresti chiarire in che tipo di protezioni sul codice lato server? Di solito sviluppo in php e faccio in modo che emetta l'html. Mentre php è un codice lato server, sta ancora emettendo un semplice html per quanto riguarda il lato client. Forse non sto completamente capendo dove stai andando con quello? – Badams

+0

@Badams Per proteggere PHP si desidera un [Obfuscator PHP] (https://www.google.com/search?q=PHP+Obfuscator). Ho imparato la lezione anche nel modo più difficile. È giusto commettere errori finché sono diversi. – iambriansreed

0

Utilizzare un sito Web che dispone di un servizio di deposito a garanzia o di un servizio di deposito a garanzia, in cui il datore di lavoro paga tutti i soldi in anticipo sul sito Web e verrà rilasciato al programmatore solo dopo aver raggiunto un obiettivo predefinito.

Molti siti Web freelance forniscono questo servizio.

+0

Avete suggerimenti sui servizi che fanno questo? Mi piacerebbe approfondire ulteriormente. Di solito sono assunta solo tramite il passaparola, quindi è stato per lo più pagamenti in contanti e non ho mai avuto un problema prima. – Badams

+0

@Badams, elance.com, odesk.com - una bella è freelancer.com e ha tariffe che variano tra il 3% e il 10% in base al tipo di abbonamento - puoi google "elenco di siti freelance". – sharp12345

-2

Ho creato uno strumento che crittografa veramente le tue sorgenti JS - nessuna semplice oscurità per offuscamento, ma buona sicurezza tramite crittografia.

Guarda come funziona qui: http://ec2-176-34-64-10.eu-west-1.compute.amazonaws.com/nopro/xscroll - è una demo solo per nascondere lo script xscroll.js.

Quando si ispeziona il DOM nel client, tutto ciò che viene visualizzato è: nplreq(url) per ogni script che si associa a HTML head.

La crittografia e la decrittografia sono totalmente trasparenti per il browser. È testato con Firefox, Chrome, Opera, Konqueror, IE8-10, Dolphin e Safari su un tablet Android.

Codifica con AES (Rijndael 256) utilizzando chiavi one-shot che vengono negoziate tra client e server (liblock-) utilizzando Diffie-Hellman.

Le sorgenti sono nascoste in modo sicuro e solo con grandi sforzi possono essere nuovamente raggiunte.

+1

La fonte è nascosta quando non li si esegue. Posso vedere facilmente la fonte con Firebug. – nhahtdh

+0

no non puoi. L'unica cosa che vedi è l'init di liblock.php e nient'altro. L'init contiene solo le funzioni base64-, bigint-, diffie-hellman- e aes. – wowei

+0

Sì, non è possibile rubarlo direttamente facilmente (guardando il codice sorgente e gli oggetti), ma un buon plugin può prendere il codice di eval. Questo sembra xscroll.js: http://pastebin.com/im2p7fpK (e il tutto richiede 10 secondi) – nhahtdh

Problemi correlati