Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

02.02.2009, 23:20

BIN-Datei aus html/php-Seite heraus starten

Hallo zusammen,

wir arbeite gerade an unserem Abschlussprojekt. Dort wollen wir per Fingerprint eine MDB-Schnittstelle ansteuern. Über die Konsole können wir diverse Fingerprints in eine MySQL-Datenbank reinschieben und zum Überprüfen auch wieder herausholen. Als nächsten Schritt wollen wir die Fingerprints der 'Kunden' über eine HTML/PHP-Seite einscannen. Gedacht war, z.B. eine Schaltfläche mit 'NEUEN KUNDEN ANLEGEN' und dann das entsprechende Programm öffnen (eine angepasste Version von libfprint enroll/verify).

Unsere Frage: Da wir uns mit Webservern nicht auskenne --> Müssen wir dazu einen Webserver aufsetzen und ein cgi-bin Verzeichnis anlegen wo diese Programme liegen (habe ich irgendwo im Netz gelesen)? Z.zt. werden wir einfach gefragt, wo das Programm gespeichert werden soll :?


Vielen Dank für Tipps
Tipp 1: NT - I. Paulus Brief [1. Thessalonicher]- 5, 21-22
Tipp 2: http://www.linux-web.de/thread.php?threadid=7741

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »PaulchenKuhn« (02.02.2009, 23:22)


2

03.02.2009, 00:13

Wenn ich das richtig verstanden habe, wollt ihr das Programm auf dem Webserver ausführen. Dazu bietet PHP verschiedene Möglichkeiten, welche aber stark umstritten sind, weil sie die Gefahr einer Sicherheitslücke maximieren. Hier findest Du PHP-Funktionen zum ausführen von Programmen auf dem Server: http://de2.php.net/manual/en/ref.exec.php

Wenn ich Dich aber falsch verstanden habe, und Ihr das Programm automatisch auf dem Client ausführen wollt, dann habt Ihr im Prinzip gelitten, weil das mit jeder vernünftigen Software aus Sicherheitsgründen unterbunden wird. Da blieben dann nur folgende Workarounds, die natürlich völliger Quatsch sind:
  • Ein Plug-In-Objekt, das im Browser läuft (Java-Applet, Flash-Animation, ...)
  • Eine Java-Script- oder AJAX-Lösung (ist für Euren Fall vermutlich ungeeignet)
  • Einen Exploit umsetzen, um eine Sicherheitslücke im Browser auszunutzen und Code auf dem Client auszuführen (funktioniert dann jeweils nur mit der einen bestimmten Browserversion und ist vermutlich nicht so richtig legal)


PS: CGI benötigt man dann, wenn man ein Programm hat, das HTML-Code (oder ähnliches) ausgibt und vom Webserver gestartet werden soll, wannimmer eine (bestimmte) URL abgerufen wird. Der Webserver leitet dann die Ausgabe des Programms, das auf dem Server ausgeführt wird, als Seiteninhalt an den Client weiter. Auch das ist aus Sicherheitsgründen umstritten und zudem unnötig, wenn man sowiso PHP auf dem Server laufen hat und daher diese Funktionen nutzen kann. Natürlich könnten aber z.B. Performance-Gründe am Ende doch CGI den Vorzug geben.

3

08.02.2009, 22:23

Hallo oziris,

habe mich bezüglich exec(), shell_exec(), passthru() und system() im php-Forum umgesehen. Entweder ist es nicht das was ich gebrauchen kann oder es verläuft sich.

Um es noch einmal klar darzustellen: Ich möchte ein kompiliertes C-Programm von einer PHP-Web-Oberfläche aus starten. In meinem konkreten Fall einen Fingerprint anlegen. Mit den o.g. Befehlen erhalte ich zwar eine Rückmeldung (printf-Anweisungen im C-Programm), aber das Programm an sich startet nicht.

Da muss es doch eine Möglichkeit geben. Ist php da vielleicht die falsche Sprache?
Tipp 1: NT - I. Paulus Brief [1. Thessalonicher]- 5, 21-22
Tipp 2: http://www.linux-web.de/thread.php?threadid=7741

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

4

09.02.2009, 02:18

http://de3.php.net/manual/de/function.exec.php
Damit wird ein Programm auf dem Server ausgefuehrt. Die Webseite ein Programm auf dem Client ausfuehren zu lassen ist zwar moeglich, aber ziemlich aufwendig zu realisieren (zumal der Nutzer es explizit erlauben muss).
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

5

15.02.2009, 12:48

Danke für den Link. Habe dort noch einmal die Kommandos 'studiert'. In meinen Konkreten fall musste ich wie nachstehend vorgehen.

Die Rechte des Verzeichnis /var/www habe ich dem Benutzer übergeben müssen. Das Programm an sich mit sudo ausgeführt (in sudoers das Programm mit der Option NOPASSWD eingetragen).

Das Programm (Fingerprint: enroll / verify) muss nur auf dem 'Server' ausgeführt werden. Dort werden neue Kunden mit Fingerprint erfasst. Der Fingerprint wandert dann in eine MySQL-Datenbank.

Was mich ein wenig wurmt ist die Rechtevergabe. Ist das so i.O.? Also Verzeichnis und php/html/png/jpg/css/...-Dateien dem Benutzer übertragen? Das Programm als sudo ausführen?
Tipp 1: NT - I. Paulus Brief [1. Thessalonicher]- 5, 21-22
Tipp 2: http://www.linux-web.de/thread.php?threadid=7741

Thema bewerten