2013-01-29 13 views
15

Kürzlich habe ich einige Web-Design-Arbeit für eine Person. Ich zeigte ihm weiterhin Fortschritte, indem ich ihm einen Link zu seiner neuen Site auf meinem Entwicklungsserver gab. Kurz vor Ende der Vollendung ließ er jeglichen Kontakt zu mir fallen und ich konnte ihn nicht mehr erreichen. Ich habe kürzlich seine Site angeschaut und er hat eine Kombination seiner alten Site mit der neuen, die ich erstellt habe, gemischt. Ich dachte, vielleicht hat er es nach dem Betrachten meiner Version neu gestaltet, aber ein kurzer Blick auf seinen Quellcode zeigt, dass die Teile, die ich erkannt habe, voll waren, einfach kopiert, indem der Quellcode auf meinem Dev-Server angezeigt wurde. Also hat er mich völlig verstockt und ich bekam keine Bezahlung von ihm.Verhindern HTML-Quellcode Stehlen

Ich frage mich nur, ob es sowieso in Zukunft zu verhindern?

Mein erster Gedanke war Verschleierung, aber eine schnelle Suche zeigt, dass dies zu HTML nicht zu empfehlen ist und nicht idiotensicher sowieso.

Offensichtlich ist dies eine Lektion gelernt für mich, um eine Art von Vorauszahlung zuerst zu bekommen, aber in der Lage zu verhindern, dass Arbeit in Zukunft so leicht gestohlen wird, wäre nett.

Gibt es Entwickler, die auf ähnliche Probleme gestoßen sind? Wie zeigst du jemandem den Fortschritt deiner Arbeit, ohne ihn als Tag Zugang zu deiner Quelle zu geben?

+15

Ein Wort: Verträge –

+8

Schreiben Sie einfach wirklich schlechten Code. Auf diese Weise wird niemand es stehlen wollen :) Oder eine NDA. –

+0

Sie könnten dies auf Programmer (http://programmers.stackexchange.com/) nicht SO in der Zukunft schreiben, obwohl diese Frage in einer kleinen Grauzone ist. – AlexMA

Antwort

6

IMHO ein guter Weg wäre Präsentationen z. mit TeamViewer oder einer ähnlichen Software, wenn Sie nicht zu Ihrem Kunden gehen können.

Sie könnten auch Screenshots oder eine grundlegende Remote-Zugriff mit VNC oder so, wo Sie sehen können, aber nicht der Website.

+0

Ich hatte mal einen * Kunden *, der einen Prototyp für seine Bank brauchte. Also habe ich eine Seite mit der vollen Funktionalität (nur das Frontend für die Kunden) kostenlos gebaut. Ich dachte, ich würde einen Job für die richtige Seite bekommen. Dann hörte ich 7 Monate später wieder von der Person, die mich glücklich sagte, dass die Seite jetzt online und für Kunden bereit ist. Das war großartig! Wie soll ich darauf reagieren? – rekire

+2

Schicken Sie ihnen eine Rechnung. – iambriansreed

+0

Ich mag die Remote-Access-Idee. Ich wünschte, ich hätte das schon einmal in Erwägung gezogen. Screenshots war, was ich in der Zukunft dachte, aber ich werde wahrscheinlich eine virtuelle Maschine nur für TeamViewer mit der Möglichkeit einrichten, auf meinen Dev-Server zuzugreifen. Danke für den Vorschlag!! – Badams

-3

Sie können entweder einfach die Website auf Ihrem Laptop ausführen oder die gesamte Website hinter eine Anmeldeseite stellen, für die ein Kennwort erforderlich ist. Sie könnten Live-Demos erstellen, aber der Client hat erst Zugriff auf die Site, wenn Sie bezahlt haben.

+3

Dies würde nicht unbedingt den Diebstahl des HTML/CSS-Quellcodes stoppen. Genauer gesagt, die verstecken sich hinter einem Login-Vorschlag. – Jeremy1026

+0

@ Jermey1026 - Ich dachte an die Frage in Bezug auf Java, die Sie die JSP/HTML in WEB-INF setzen können, die nicht zugänglich ist, wenn Sie nicht über das Login-Servlet gehen. – Shane

-1

Es ist möglich, den Quellcode mit Javascript zu verschlüsseln. Probieren Sie diese Website: http://www.iwebtool.com/html_encrypter Ich habe dieses Tool nie selbst verwendet und ich weiß nicht, ob alles gut funktioniert, aber ich denke, es lohnt sich, einen Schuss zu geben. Sie können den normalen Quellcode immer hochladen, nachdem Sie bezahlt haben. Stellen Sie außerdem sicher, dass Sie in Zukunft die richtigen Kontaktinformationen Ihres Kunden haben. Ich empfehle auch sehr, einen Vertrag in der Zukunft zu verwenden, damit Ihr Klient gesetzlich gebunden wird, um Sie zu zahlen. Eine andere mögliche Option ist, Ihrem Kunden nichts als einen Screenshot der Site zu geben, aber Ihre Site wird natürlich statisch.

+0

Es gibt keine Möglichkeit, HTML/JavaScript "zuverlässig" zu verschlüsseln. Sobald es meinen Browser trifft, kann ich das DOM überprüfen und Ihren Quellcode erhalten. P.S. Das ganze "Werkzeug" ist: 'document.write (unescape (...))'. –

0

Was Sie tun könnten, ist HTML Image Maps mit Screenshots verwenden, um eine grundlegende, interaktive Version des Endprodukts zu erstellen.

+0

Eigentlich habe ich nie daran gedacht! Ich muss das vielleicht für zukünftige große Projekte in Betracht ziehen, aber der allgemeine Konsens scheint zu sein, alles schriftlich zu bekommen, was mir bewusst ist, dass ich es wirklich tun sollte. Danke für den Vorschlag! – Badams

6

Die anderen Antworten hier sind nur eine Reihe von Hacks, die rückgängig gemacht werden können.

Die Clientseite, HTML, CSS und JS bestehen aus allen Open-Source-Technologien. Während Sie eine Menge Zeit damit verbringen könnten, Ihren clientseitigen Code zu verschleiern, ist Ihre beste Wette nur besser Geschäftslogik zu üben.

Die Optionen öffnen sich weit über den Schutz für serverseitigen Code, aber Ihre Frage scheint sich auf clientseitigen Code zu konzentrieren.

Für gut etablierte vertrauenswürdige Kunden bin ich viel flexibler, aber neue Kunden, mit denen ich sehr vorsichtig bin. Ich fordere progressive Zahlungen. Für jede Lieferung ist eine Zahlung erforderlich. Auf diese Weise haben beide Parteien, wenn die Beziehung jemals unterbrochen wird, was sie wollen.

Wenn Sie sich zu einem einfachen Zeichen für Betrüger machen, ziehen Sie nur Betrüger an.

+0

Ja ich realisiere jetzt bessere Geschäftslogik ist die Antwort, leider musste etwas Schlimmes passieren um das zu lernen. Können Sie klären, welche Art von Schutz auf dem Server-seitigen Code? Normalerweise entwickle ich PHP und lasse es HTML ausgeben. Während php ein serverseitiger Code ist, gibt es immer noch plain html, soweit es die Client-Seite betrifft. Vielleicht verstehe ich nicht ganz, wohin du damit gehst? – Badams

+0

@Badams Zum Schutz von PHP benötigen Sie einen [PHP Obfuscator] (https://www.google.com/search?q=PHP+Obfuscator). Ich habe die Lektion auch auf die harte Tour gelernt. Es ist in Ordnung, Fehler zu machen, solange sie anders sind. – iambriansreed

0

Verwenden Sie eine Website, die einen Escrow-Service oder einen treuhänderähnlichen Dienst hat, bei dem der Arbeitgeber das gesamte Geld im Voraus an die Website zahlt und erst nach Erreichen eines vordefinierten Ziels an den Coder ausgegeben wird.

Viele Freelancing-Websites bietet diesen Service.

+0

Haben Sie Vorschläge zu Diensten, die dies tun? Darauf möchte ich näher eingehen. Normalerweise werde ich nur über Mundpropaganda eingestellt, also waren es meistens Barzahlungen und ich hatte noch nie ein Problem. – Badams

+0

@Badams, elance.com, odesk.com - ein nettes ist freelancer.com und es hat Gebühren, die zwischen 3% und 10% basierend auf Ihrem Mitgliedschafts-Typ reichen - Sie können google "Liste der freiberuflichen Sites". – sharp12345

-2

Ich habe ein Tool gebaut, das Ihre JS-Quellen wirklich verschlüsselt - keine einfache Verschleierung durch Verschleierung, aber gute Sicherheit durch Verschlüsselung.

Sehen Sie, wie es hier funktioniert: http://ec2-176-34-64-10.eu-west-1.compute.amazonaws.com/nopro/xscroll - es ist eine Demo nur zum Ausblenden des Skripts xscroll.js.

Wenn Sie das DOM in Ihrem Client untersuchen, sehen Sie nur: nplreq(url) für jedes Skript, das Sie an HTML binden head.

Verschlüsselung und Entschlüsselung sind für den Browser völlig transparent. Es wird mit Firefox, Chrome, Opera, Konqueror, IE8-10, Dolphin und Safari auf einem Android-Tablet getestet.

Verschlüsselung mit AES (Rijndael 256) mit One-Shot-Keys, die zwischen Client und (liblock-) Server mit Diffie-Hellman ausgehandelt werden.

Die Quellen sind sicher versteckt, und nur mit wirklich großem Aufwand können sie wieder erreicht werden.

+1

Die Quelle ist ausgeblendet, wenn Sie sie nicht ausführen. Ich kann die Quelle mit Firebug leicht sehen. – nhahtdh

+0

nein du kannst nicht. Das einzige, was Sie dort sehen, ist die Init von liblock.php und nichts anderes. Das Init enthält nur die base64-, bigint-, diffie-hellman- und aes-Funktionen. – wowei

+0

Ja, Sie können es nicht direkt leicht stehlen (indem Sie den Quellcode und die Sachen anschauen), aber ein gutes Plugin kann den Evaluierungscode greifen. Das sieht wie xscroll.js aus: http://pastebin.com/im2p7fpK (und das alles dauert 10 Sekunden) – nhahtdh

Verwandte Themen