2010-12-13 8 views
5

Wie auch immer, um eine Chrome-Erweiterung zu verschlüsseln, um den Quellcode nicht verfügbar zu machen?Chrome-Erweiterung verschlüsseln?

+1

Verwirrt für eine Weile, bis ich von den Tags sah, dass Sie Chrome-Erweiterung bedeuten :) - sollten Sie Ihre Frage bearbeiten. –

+0

Aktualisiert danke. – jprim

Antwort

8

Sie können Ihren Code mit Obfuscator verstecken. Es gibt viele verfügbare im Markt.

Es gibt einige Tools wie Google Closure Compiler, und viele Online-Javascript-Offuzierer sind im Markt verfügbar. Sie können beliebige verwenden. aber es garantiert nicht die Vertraulichkeit des Codes. Jeder Experte mit Javascript kann diesen Code de-obuscate.

Hier sind zwei Methoden: 1. Stellen Sie Ihre Funktionalität über Webdienste zur Verfügung. So wichtiger Code befindet sich auf dem Server und die Erweiterung kommuniziert mit dem Server und verarbeitet die Ausgabe vom Server. 2. Verwenden Sie NPAPI, aber es ist keine gute Methode.

Als eine gute Strategie ist es, zu versuchen, dem Benutzer eine gute Erweiterung zu geben. Wenn es im Markt bereits etwas Großartiges gibt, wird kein Körper versuchen, Ihr Addon zu kopieren. versuchen Sie, Ihrer Konkurrenz voraus zu sein.

EDIT: NPAPI ist veraltet.

+0

Da Chome alle ihre Sicherheit in Manifest v2 aktualisiert die 'eval'-Funktion kann nicht mehr verwendet werden. Ich denke, wegen der Art, wie Obfuscatoren funktionieren, brauchen sie alle Eval, damit Sie Code nicht mehr mit dieser Methode schützen können. –

+0

@ChristianJuth Obfuscators verwenden nicht immer 'eval' und selbst mit v2 ist es möglich,' unsafe-eval' bei Bedarf zu aktivieren. – Xan

+0

@Xan Mein schlechtes. Ich habe den Wortlaut meiner Antwort ein wenig geändert. Nur aus Neugier können Sie einen Link zum Obfuscator posten, der eval nicht verwendet. Ich bin gespannt wie sie arbeiten. –

4

wie Sie lesen können here können Sie nicht. Sie können Ihren Code schwer lesen und verstehen, aber das ist alles.

(dass andere Frage über das Verstecken des Javascript-Codes in einer html-Seite ist, aber das ist meistens das gleiche (soweit ich weiß, Chrome-Erweiterung sind nur in js/css/html geschrieben, bitte korrigieren Sie mich wenn Ich bin falsch))

+1

Oder es könnte geschrieben werden mit NPAPI/NaCL/PEPPER :) (C++) –

0
  1. verlassen wichtige Codelogik auf dem Server (Web Service-Hilfe)
  2. empfindlich html und js in Iframes injizieren es

Aber ich denke, (die Schaffung dieser html kann dynamisch erfolgen) läuft alles bis zur Architektur Ihres Codes

-1

Mit Manifest v2 sind die Obfuscatoren schwieriger zu verwenden, da eval aus Sicherheitsgründen als unsicher gilt.

Vielleicht ist einer der größten Veränderungen in der neuen Manifest v2 Regelung ist, dass Erweiterungen nicht mehr dynamische Skriptevaluierungstechniken wie eval() oder eine neue Funktion() verwenden können, oder Strings von JS-Code-Funktionen übergeben, die dazu führen wird ein eval(), das verwendet werden soll, wie setTimeout(). Außerdem sind bestimmte häufig verwendete JavaScript-Bibliotheken wie Google Maps und bestimmte Vorlagenbibliotheken dafür bekannt, einige dieser Techniken zu verwenden.

Quelle https://developer.chrome.com/extensions/tut_migration_to_manifest_v2#using

Ich empfehle minifying nur den Code. Die Art, wie Minifier funktionieren (da sie nicht alle gleich funktionieren) ist, dass sie jeden Platz entfernen und die Namen der Variablen in einzelne Buchstaben ändern, um die Anzahl der Zeichen zu reduzieren. Dadurch wird Ihrem Code viel Bedeutung genommen und es ist sehr schwer lesbar. Es ist kein vollständiger Beweis, aber es wird einen zusätzlichen sehr mühsamen Schritt hinzufügen, um Ihren Code zu lesen. Darüber hinaus wurden Minifier für die Komprimierung entwickelt und um Ihren Code schneller laufen zu lassen. Mein Lieblings-Minifier ist UglifyJS.