Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs
ASP German Homepage Homepage
 

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

ASP Scripts verschlüsseln

Geschrieben von: Christoph Wille
Kategorie: Sicherheit

Der Schutz geistigen Eigentums (Urheberrecht) ist besonders am Internet ein sehr heißes Thema. Und wir als ASP Programmierer sind mitbetroffen - unsere Scripts sind für jedermann lesbar, der Zugriff auf die lokale Festplatte hat. Dies ist umsomehr problematisch, als wir meistens nur Nutzungsrechte an von uns erstellten Programmen verkaufen.

Wie kann ich mein geistiges Eigentum - den Sourcecode des ASP Scripts - vor dem Zugriff Dritter schützen? Dafür gibt es verschiedene Varianten, und zwei sehr beliebte sind:

  • Das Script verschlüsseln
  • Teile des Scripts in eine Komponente umwandeln
In diesem Artikel beschäftigen wir uns ausführlich mit der ersten Variante, nämlich das fertige Script zu verschlüsseln.

Zum Verschlüsseln von Scripts (ASP, WSH, HTML) gibt es ein Gratis-Tool von Microsoft, und zwar den Script Encoder (siehe Downloadlinks). Dieser verschlüsselt alle Codeteile eines Scripts, zB wird aus

<%
Response.Write "Testscript, © AspHeute.com"
%>
nach dem Aufruf des Script Encoders
<%@ LANGUAGE = VBScript.Encode %>
<%#@~^OAAAAA==@#@&InkwKx/Rq.kD+~J:+dOkmDb2YBP[
	1G2XpPz/2Cn;D+ mKhJ@#@&YxEAAA==^#~@%>
Der Befehl, der diese Verschlüsselung bewirkt hat, ist relativ simpel:
screnc non-enc.asp enc.asp
Bevor ich nun die Details der Verschlüsselung bespreche, ein kurzer Ausflug zur Installation des Script Encoders sowie zum Deployment der verschlüsselten Scripts bei Kunden.

Installation

Der Scriptencoder ist nicht Teil der Scripting Engines, die mit IIS4 oder IE5 installiert werden. Allerdings enthalten alle MS Script Engines Versionen 5.x und höher bereits die Funktionalität, die mit dem Script Encoder verschlüsselten Scripts laufen lassen zu können. Man muß beim Kunden also nur sicherstellen, daß VBScript oder JScript Version 5 oder höher installiert ist.

Auf der Maschine, auf der man die Scripts verschlüsseln will, muß man zuerst den Script Encoder installieren. Dies ist auch sehr einfach, allerdings gibt es eine Fußangel: die Datei screnc.exe ist nicht im Pfad, das heißt, man muß sie aus \Program Files\Windows Script Encoder\ in das Windows 2000 Verzeichnis kopieren, um sie von überall aus verwenden zu können.

Verschlüsseln

Wir haben ja bereits ein Script verschlüsselt:

<%@ LANGUAGE = VBScript.Encode %>
<%#@~^OAAAAA==@#@&InkwKx/Rq.kD+~J:+dOkmDb2YBP[
	1G2XpPz/2Cn;D+ mKhJ@#@&YxEAAA==^#~@%>
Wie man sehen kann, hat der Scriptencoder eine @LANGUAGE Anweisung eingebaut. Diese weist ASP an, zur Laufzeit diejenige Script Engine auszuwählen, die das verschlüsselte Script ablaufen lassen kann.

Für .asp Dateien nimmt srcenc.exe standardmäßig an, daß die verwendete Default Scriptsprache VBscript war. Wäre es JScript gewesen, würde der Befehl zum Verschlüsseln so aussehen:

screnc.exe /l JScript non-enc.asp enc.asp

Bei <SCRIPT> Blöcken verhält sich der Scriptencoder analog. Wenn ich folgenden Block verschlüssele

<SCRIPT LANGUAGE="VBScript" RUNAT="SERVER">
Function DoSomething()
  nVal = 100
  nVal = nVal + 1
End Function
</SCRIPT>
dann erhalte ich
<%@ LANGUAGE = VBScript.Encode %>
<SCRIPT LANGUAGE="VBScript.Encode" RUNAT="SERVER">
#@~^VwAAAA==@#@&@#@&wE	mYbW	~fK?G:Y4r	o`*@#@&,
	PxjCsP{P8!T@#@&~,x#l^~'
	,x#C^P_~q@#@&3x9~wEU1YbWx@#@&eRQAAA==^#~@
</SCRIPT>
Ein sehr nettes Zusatzfeature bietet der Scriptencoder dann, wenn man bestimmte Teile nicht verschlüsseln möchte:
' © Some Organization
'**Start Encode**
myVar = "foo"
Mit der Kommentarzeile '**Start Encode** teilt man dem Scriptencoder mit, ab welcher Zeile der Sourcecode verschlüsselt werden soll:
<%@ LANGUAGE = VBScript.Encode %>
<%
' © Some Organization
'**Start Encode**#@~^FQAAAA==@#@&:zjlMP',J6GWr@#@&QgQAAA==^#~@%>
Wichtig ist, daß ab dieser Zeile sämtlicher Code verschlüsselt wird - inklusive der, der in <SCRIPT> Blöcken eingeschlossen ist.

Schlußbemerkung

Eine 100%ige Sicherheit für seinen Sourcecode bekommt man mit dem Scriptencoder definitiv nicht, allerdings dürfte er den Großteil der Personen abhalten, sich an Ihrem geistigen Eigentum zu vergreifen. Will man mehr, dann bleibt einem der Weg zur Komponentenprogrammierung nicht erspart.

Verwandte Artikel

Kopieren verboten - Lizenzsicherung bei ASP Scripts
MS Script Encoder dekodiert

Links zu anderen Sites

MS Script Encoder

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.