Laden...

Weboberfläche welche externe Programme starten soll

Erstellt von mawalln vor 6 Jahren Letzter Beitrag vor 6 Jahren 2.781 Views
M
mawalln Themenstarter:in
5 Beiträge seit 2018
vor 6 Jahren
Weboberfläche welche externe Programme starten soll

Guten Morgen,

ich muss eine Schnittstelle schreiben, welche über eine Weboberfläche ein Programm starten soll und dabei bestimmte Werte wie die UID mitliefern soll. Es gibt über 10 verschiedene Spiele, die entweder webbasiert oder über C# laufen.

Der Nutzer soll vorher ein kleines Programm runterladen, welches im Hintergrund läuft und gewisse Befehle abarbeiten soll und am Ende auch die Programme runterladen und starten soll. Über eine Datenbank darf ich das ganze leider nicht machen, wäre auch eine etwas unschöne Lösung.

Ich habe soetwas noch nie gemacht und stehe daher etwas an, vielleicht könnt ihr mir ein paar Tipps geben, wie ich das Ganze lösen kann.

Danke für eure Hilfe.

GLG.

T
2.224 Beiträge seit 2008
vor 6 Jahren

Kannst du überhaupt einige der benötigten Techniken?
Also Webanwendungen oder generell Anwendungsentwicklung?
Ohne diese Erfahrungen kannst du das Projekt gleich zur Seite legen und erst einmal mit den Grundlagen anfangen.

Wie dein Projekt im Detail umgesetzt werden muss/soll musst du dir überlegen, kann dir keiner abnehmen.
Anwendungen über Webs Starten ist aber i.d.R. eine sehr schlechte Idee und sollte nur in Notfällen gemacht werden.
Am besten sollte dein Web mit einem lokalen Service kommunizieren, dass dann die eigentlichen Anwendungen startet.
Sonst könnte man über dein Web jede Anwendungen starten, was dieses zu einem Angriffsziel machen würde.

Aber bitte erläutere erst einmal deinen aktuellen Wissensstand, sonst wäre eine weitere Beratung ohne grundsätzliches Know-How nicht hilfreich.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

M
mawalln Themenstarter:in
5 Beiträge seit 2018
vor 6 Jahren

Also ich habe schon ca. 1,5 Jahre Erfahrung mit Anwendungsentwicklung (C#) und Webanwendungen (PHP, JS). Genau das was ich fett markiert habe, soll es auch tun.

Ich habe bisher eigentlich nur Endanwendungen geschrieben, habe somit keine Erfahrungen mit solchen Hintergrundprozessen. Aufgrund meines Wissenstandes sollte es aber möglich sein, darauf aufzubauen.

LG

Hinweis von MrSparkle vor 6 Jahren

Fullquote entfernt. Bitte beachte [Hinweis] Wie poste ich richtig?

286 Beiträge seit 2011
vor 6 Jahren

Die tl;dr;-Antwort auf deine Frage ist:
Das geht nicht. Wenn dein Browser in der Lage wäre direkt Programme zu starten wäre das Internet wie wir es kennen wahrscheinlich bereits unter der Herrschaft verschiedenster Malware ^^

Was du unter anderem machen könntest:

  1. Du kannst eine proprietäre Datei mit deinen Parametern zum Download anbieten. Durch die am PC installierte Software weiß dieser PC, was er mit der Datei machen soll.
  2. Du implementierst ein eigenes Protokoll, also anstatt "https://" sowas wie "myFancyApp://". Wieder das gleiche Spiel du musst dem PC beibringen, was er mit dem Protokoll anstellen soll.

Beide Lösungen haben den enormen Nachteil, dass du Angreifern über diese Lösung die Möglichkeit bietest beim Nutzer lokal Code mit Nutzerrechten auszuführen, was unter Sicherheitsaspekten ein GAU ist. D.h. du musst sehr genau wissen was du tust und o.g. Möglichkeiten ausschließen. Ansonsten entwickelst du nur ein großes Einfalltor.

Beste Grüße
emuuu

2+2=5( (für extrem große Werte von 2)

M
mawalln Themenstarter:in
5 Beiträge seit 2018
vor 6 Jahren

Das mit dem Sicherheitsaspekt ist natürlich so eine Sache, bei diesen Anwendungen aber nicht das Problem, da sie nur im lokalen Netzwerk laufen werden.

Danke, werde mir diese Methoden mal ansehen.

286 Beiträge seit 2011
vor 6 Jahren

da sie nur im lokalen Netzwerk laufen werden.

Dein Browser wird aber wahrscheinlich nicht nur im lokalen Netzwerk genutzt werden. D.h. wenn ich weiß, dass du dein eigenes Protokoll implementiert hast muss ich dich nur auf eine Website locken und dich dort "myFancyApp://DoMaliciousStuff" anklicken lassen.

Eine weitere (und sehr viel sichere) Alternative wäre, wenn deine lokale Anwendung einen WebServer hostet und deine WebApp diesen aufruft:
"http://localhost:5001/MyFancyApp/DoStuff"

2+2=5( (für extrem große Werte von 2)

3.003 Beiträge seit 2006
vor 6 Jahren

Klingt für mich eher nach Java Web Start. Ob man das wirklich verwenden will, lass ich mal dahingestellt.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

5.658 Beiträge seit 2006
vor 6 Jahren

Wenn man sowieso ein Programm downloaden und installieren muß, welchen Zweck erfüllt dann eigentlich der Browser?

Weeks of programming can save you hours of planning

301 Beiträge seit 2009
vor 6 Jahren

Der Nutzer soll vorher ein kleines Programm runterladen, welches im Hintergrund läuft und gewisse Befehle abarbeiten soll und am Ende auch die Programme runterladen und starten soll.

Mach es doch gleich so, dass dieses Programm dein eigentlicher Auswahlclient ist und dieser bei "webbasierten programmen" die entsprechende URL im Browser aufruft und im C# Fall das lokal installierte programm startet bzw. zuvor runterläd.

Erscheint mir irgendwie einfacher und wäre diesselbe Vorgehensweise wie bei Steam.

3.003 Beiträge seit 2006
vor 6 Jahren

Wenn man sowieso ein Programm downloaden und installieren muß, welchen Zweck erfüllt dann eigentlich der Browser?

Denselben wie in den 90ern: eine Download-Plattform 😉.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

M
mawalln Themenstarter:in
5 Beiträge seit 2018
vor 6 Jahren

Ich habe mir nun noch ein paar Sachen angesehen und ich werde das mittels .NET WebServices umsetzen. Danke für eure Hilfe.

16.842 Beiträge seit 2008
vor 6 Jahren

Was meinst Du denn mit .NET WebServices?
Das Produkt so als Name gibts nicht.

M
mawalln Themenstarter:in
5 Beiträge seit 2018
vor 6 Jahren

WCF meinte ich, sorry.

286 Beiträge seit 2011
vor 6 Jahren

Anstatt dich in WCF einzuarbeiten nimm lieber ASP.Net Core 2.0

Ist von den Möglichkeiten her deutlich näher an dem was du dir vorstellst und schlicht die modernere Technik (bei WCF ist die aktuellste Version schon 6 Jahre alt)

2+2=5( (für extrem große Werte von 2)