Gute Frage mit einer einfachen Antwort: Sie können nicht !
Javascript ist eine clientseitige Programmiersprache, daher funktioniert es auf dem Client-Computer, sodass Sie nichts vor dem Client verbergen können.
Das Verschleiern Ihres Codes ist eine gute Lösung, aber nicht genug, denn obwohl es schwierig ist, könnte jemand Ihren Code entschlüsseln und Ihr Skript "stehlen".
Es gibt einige Möglichkeiten, Ihren Code schwer zu stehlen, aber wie gesagt, nichts ist kugelsicher.
Auf den ersten Blick besteht eine Idee darin, den Zugriff auf Ihre externen JS-Dateien von außerhalb der Seite zu beschränken, in die Sie Ihren Code eingebettet haben. In diesem Fall, falls vorhanden
<script type="text/javascript" src="myJs.js"></script>
Wenn jemand versucht, im Browser auf die Datei myJs.js zuzugreifen , sollte ihm kein Zugriff auf die Skriptquelle gewährt werden.
Wenn Ihre Seite beispielsweise in PHP geschrieben ist, können Sie das Skript über die include
Funktion einschließen und das Skript entscheiden lassen, ob es sicher ist , die Quelle zurückzugeben.
In diesem Beispiel benötigen Sie das externe "js" (in PHP geschrieben) ) Datei myJs.php :
<?php
$URL = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
if ($URL != "my-domain.com/my-page.php")
die("/\*sry, no acces rights\*/");
?>
das wäre in deiner Hauptseite my-page.php enthalten :
<script type="text/javascript">
<?php include "myJs.php"; ?>;
</script>
Auf diese Weise konnte nur der Browser den Inhalt der js-Datei sehen.
Eine weitere interessante Idee ist, dass Sie am Ende Ihres Skripts den Inhalt Ihres dom-Skriptelements löschen, sodass der Code verschwindet, nachdem der Browser Ihren Code ausgewertet hat:
<script id="erasable" type="text/javascript">
document.getElementById('erasable').innerHTML = "";
</script>
Dies sind alles nur einfache Hacks, die nicht und ich kann das nicht genug betonen: Sie können Ihren js-Code nicht vollständig schützen, aber sie können sicher jemanden verärgern, der versucht, Ihren Code zu "stehlen".
Aktualisieren:
Ich bin kürzlich auf einen sehr interessanten Artikel von Patrick Weid gestoßen, in dem es darum geht, Ihren JS-Code zu verbergen, und er enthüllt einen anderen Ansatz: Sie können Ihren Quellcode in ein Bild codieren! Sicher, das ist auch nicht kugelsicher, aber es ist ein weiterer Zaun , den Sie um Ihren Code herum bauen könnten.
Die Idee hinter diesem Ansatz ist, dass die meisten Browser das Canvas-Element verwenden können, um Pixelmanipulationen an Bildern durchzuführen. Und da das Canvas-Pixel durch 4 Werte (rgba) dargestellt wird, kann jedes Pixel einen Wert im Bereich von 0 bis 255 haben. Das bedeutet, dass Sie in jedem Pixel ein Zeichen (tatsächlich ist es ASCII-Code) speichern können. Der Rest der Codierung / Decodierung ist trivial.
Danke, Patrick!