Forum: PC-Programmierung DLL - gibts sowas auch für HTML oder PHP?


von Peter (Gast)


Lesenswert?

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

von Andreas D. (rackandboneman)


Lesenswert?

Stichwort Obfuscation.

zB gibt es das Produkt Zend Guard.

: Bearbeitet durch User
von Lenny D. (le-do)


Lesenswert?

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

von Andreas D. (rackandboneman)


Lesenswert?

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
von Lenny D. (le-do)


Lesenswert?

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.

von Daniel F. (df311)


Lesenswert?

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

von ja nun (Gast)


Lesenswert?

Welcher php code ist denn zugaenglich ? Der wir auf dem Server 
ausgefuehrt und taucht nirgendwo auf.

von Andreas D. (rackandboneman)


Lesenswert?

Sein Server steht beim Kunden und ist unter dessen Kontrolle.

von Test (Gast)


Lesenswert?

Es gibt zB noch Ioncube neben den Zend Platform Tools.

von короткое троль (Gast)


Lesenswert?

Und die zu schuetzende Funktionalitaet bei sich selbst hosten ? Ein 
externes Script eben.

von Andreas D. (rackandboneman)


Lesenswert?

@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.

von короткое троль (Gast)


Lesenswert?

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.

von Andreas D. (rackandboneman)


Lesenswert?

"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.

von bluppdidupp (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.