Hallo, ich möchte eine Software in HTML/PHP implementieren und gleichzeitig sicherstellen, dass einige Funktionen nicht im Quellcode zugänglich sind - vergleichbar mit einer DLL (die Software läuft nicht auf meinem eigenen Server, sondern wird weiterverteilt). Gibt es diese Möglichkeit bei HTML bzw. PHP? Welche Alternative habe ich, wenn das Ganze auf einem Wald- und Wiesen-Server laufen soll? Gruß Peter
Stichwort Obfuscation. zB gibt es das Produkt Zend Guard.
:
Bearbeitet durch User
Dieser Zend Guard klingt nach einer guten Option für was du versuchst zu erreichen. Ansonsten gibt es mit CGI die Möglichkeit Skripte und komplilierte Programme auf dem Webserver auszuführen (auf einem Windows Server also wirklich eine DLL). http://de.selfhtml.org/servercgi/cgi/cgihtml.htm http://de.wikipedia.org/wiki/Common_Gateway_Interface Damit kannst du zB deine geheime Logik in C programmieren und per CGI aufrufen. Nachteile: - Geschwindigkeit. Siehe Wiki Artikel - Serverplattform-abhängig. Betriebssystem und Zugriffsrechte müssen passen Hab leider selbst keine Erfahrung damit kann also nicht mehr Tipps geben aber vielleicht mal ein Anfang. LG Lenny
Wenn sein Hoster das mitmacht bzw keinen Aufpreis dafür verlangt. Dann könnte er auch gleich in die Richtung Tomcat/JSP arbeiten... EDIT: Ist ja kundengehostet. Noch schlimmer.
:
Bearbeitet durch User
Hab grade mal Google befragt, wenn du nicht eine komplette Seite per CGI laden willst sondern eher ein Ergebnis in PHP aus einem kompilierten Programm erhalten willst: http://www.php.net/manual/en/function.shell-exec.php Beispielprogramm (C#.net Konsolenprogramm unter Windows7+XAMPP): localhost/test.php und im selben Verzeichnis localhost/cgitest.exe C# cgitest.exe:
1 | class Program |
2 | { |
3 | static void Main(string[] args) |
4 | { |
5 | Console.WriteLine("<p>"); |
6 | foreach (string arg in args) |
7 | { |
8 | Console.WriteLine(arg+"<br>"); |
9 | } |
10 | Console.WriteLine("Hello World"); |
11 | Console.WriteLine("</p>"); |
12 | } |
13 | } |
PHP Code test.php
1 | <html>
|
2 | <body>
|
3 | <?php
|
4 | $txtout = shell_exec("cgitest.exe Option1 -Option2 /h3"); |
5 | echo $txtout; |
6 | ?>
|
7 | </body>
|
8 | </html>
|
Ausgabe HTML in Firefox:
1 | <html>
|
2 | <body>
|
3 | <p>
|
4 | Option1<br>
|
5 | -Option2<br>
|
6 | /h3<br>
|
7 | Hello World |
8 | </p>
|
9 | </body>
|
10 | </html>
|
Ähnliche Beschränkungen wie CGI und wie Andy sagt Kundenserver-abhängig.
ich musste mal ein php-script mit einer java-klasse (serverseitig) "verheiraten" (irgendein kreditkarten-abrechnungs-tool oder sowas, das von einem externen dienstleister zur verfügung gestellt wurde). am ende habe ich das ganze dann mit popen gelöst:
1 | resource popen ( string $command , string $mode ) |
http://us1.php.net/manual/en/function.popen.php
Welcher php code ist denn zugaenglich ? Der wir auf dem Server ausgefuehrt und taucht nirgendwo auf.
Sein Server steht beim Kunden und ist unter dessen Kontrolle.
Es gibt zB noch Ioncube neben den Zend Platform Tools.
Und die zu schuetzende Funktionalitaet bei sich selbst hosten ? Ein externes Script eben.
@Karottentroll nicht dass das noch einer Ernst nimmt. So eine Lösung kann entweder: a) im Einverständnis des Kunden geschehen. Dann ist man aber für Verfügbarkeit und Datenschutz verantwortlich. Rechne damit dass das abgelehnt wird, unter anderem da die Verfügbarkeit auch von Komponenten beim Kunden abhängt (Aussenanbindung) die dieser normalerweise nicht so verfügbar vorhalten wird wie seine hausinterne Technik. oder b) Das wird ohne Wissen des Kunden implementiert. Dann gilt genau das gleiche, plus dass SPÄTESTENS wenn etwas schiefgeht ein IT-Verantwortlicher mit hochrotem Kopf, seitlich aus den Ohren entweichenden Dampfstössen und Totenköpfen in den Augen beim Chef stehen wird und das Produkt im selben Satz mit Ausdrücken wir "kriminell", "unprofessionell" und "unakzeptables Risiko" erwähnen wird.
Schon mal bei ner Webseite den NoScript drueber laufen lassen? Da sind so viele externe Scripts drauf... eigentlich auf fast allen seiten. Dasselbe mit der DLL. .. .. was, wir haben einen unbekannten code, der machen darf was er will? zB die Geschaeftgeheimnisse absaugen? Klopp das Konzept in die Tonne. Gib den Code raus, die sollen abdruecken.
"eigentlich auf fast allen seiten" Nutzer und Kunde, Intranet und Internet sind jeweils zwei ganz unterschiedliche Sachverhalte ;) Zend Guard etc sind schon die richtige Lösung ... Ioncube, Zend Encoder etc benötigen Anpassungen des Webservers und sind ohne diese nicht brauchbar. Was man noch machen könnte wäre einen kleinen Server (kleine 1HE, Atom oder ähnlich stromsparend) komplett als schlüsselfertige Lösung auszuliefern, zu versiegeln und vertraglich zu verbieten dass dieses Gerät geöffnet wird.
Zend Guard und IonCube haben eine recht hohe Verbreitung, ziemlich häufig auch bei 0815-Hostern nutzbar.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.