Felix Riesterer: URL aufruf aus html durch Linux

Beitrag lesen

Lieber d.schmidt,

ein mix aus HTML Java und php

nein, kein Java. Aber JavaScript.

<?php
     $xuser = $_SESSION['user'];			
	$xpbxip = $_SESSION['pbxip'];
	$xpbxuser = $_SESSION['pbxuser'];
	$xpbxpw = $_SESSION['pbxpw'];
	$xpbxid = $_SESSION['pbxID'];
            ?>

Wozu die Umkopiererei? Das ist gefährlich, weil der Programmierer den Ursprung der Daten nicht mehr einschätzen kann - und deshalb ihnen vielleicht unnötig misstraut, oder sie unnötig umwandelt (maskiert) - im besten Fall. Im schlimmsten Fall ist es genau anders herum und Sicherheitslücken werden unnötig aufgerissen! Verwende die Schreibweise mit den Session-Indices (siehe unten beim JavaScript), auch wenn das mehr Schreibarbeit zu sein scheint.

	function showAlert() {
    var xuser ='<?php echo $xuser;?>';
	var xpbxip ='<?php echo $xpbxip;?>';
	var xpbxid ='<?php echo $xpbxid;?>';
	var xpbxuser ='<?php echo $xpbxuser;?>';
	var called = document.getElementById("Eingabefeld").value;
	
	var link ='https://'+ xpbxip +':8802/cgi-bin/gadgetapi?cmd=MkCall&callingDevice='+ xpbxuser +'&calledDirectoryNumber='+ called +'&gsSession='+  xpbxid +'';
    window.open(link, '_blank');         
}

Schon wieder Umkopiererei! Warum nur?!? Du verwendest diese ganzen Variablen noch nicht einmal. Warum daher nicht so?

	function showAlert() {
    window.open(
        "https://"
            + "<?php echo $_SESSION['pbxip'];?>"
            + ":8802/cgi-bin/gadgetapi?cmd=MkCall&callingDevice="
            + "<?php echo $_SESSION['pbxuser'];?>"
            + "&calledDirectoryNumber="
            // kontextgerecht kodieren
            + encodeURIComponent(
                document.getElementById("Eingabefeld").value
            )
            + "&gsSession="
            + "<?php echo $_SESSION['pbxID'];?>",
        "_blank"
    );         
}

In JavaScript verwende ich konsequent die doppelten Anführungszeichen, wenn es geht. In PHP haben diese ja eine leicht andere Bedeutung ("$var" != '$var'), aber in JavaScript verwende ich die einfachen nur dann, wenn ich damit doppelte einfassen muss (var s = '<p class="hint">...</p>';).

<input type="button" value="Anruf Absetzen" onclick="showAlert()">

Wenn Du mittels showAlert ohnehin ein neues Fenster öffnest, wozu dann noch das Formular? Es sei denn, Du änderst die Sache mit dem window.open und führst nach dem Absenden des Formulars zu einer PHP-generierten Fassung des Fensters (mit zurück-Button zum Forumlar vielleicht?), um diese Fensterei einzudämmen.

Ich verwende tatsächlich window.open, sollte später ja aber anders gelöst werden, nach aktuellem stand generiert er den link u öffnet ihn im kunden Browser was sie bereits richtig erkannt habend das soll er nicht.

Deine Formulierungen strengen mich an, da sie nicht sofort klar verständlich sind. Wenn Du kostenlose Hilfe willst, dann solltest Du klarer formulieren, um den Hilfswilligen das Helfen so leicht wie möglich zu machen.

das gesamte Panel ist natürlich per login geschützt. sowie auch die tk anlage

Aha... und wie genau? Wo werden die Login-Daten vorgehalten? Wie wird der Login geprüft?

Aufbau :

Login (Session für das Panel holen und Userdaten in Arry schreiben) (anschließend mit userdaten an tk Anlage anmelden per https, und zurückgelieferte session id (pbxid) auch ins arry schreiben) somit haben wir eine gültige session für unser Panel in dme wir nun sind, und für die tk anlage die wir nun mithilfe der userdaten und der aktiven session per url steuern können.

Das ist kein Satz. Zumindest ist er grammatisch nicht korrekt und daher nur sehr mühsam zu verstehen. Ändere das! Das ist kein Unvermögen, das ist Nachlässigkeit, weil Du meinst, dass es keine Wichtigkeit hätte!

Zum beschriebenen Vorgehen: Ihr (oder Du) tunnelt sozusagen eine Session von einer Client-Server-Kombination zu einer Client_s_-Server-Kombination, damit viele andere Clients über einen anderen Server diese eine Session auf diesem einen Server benutzen können.

Klingt das nach einem sicheren Konzept? Kann man da im Zweifel nachprüfen, wer da was gedreht hat? Da vermute ich ganz stark ein (um-Gottes-Willen-)nein.

Vielleicht ist es für Dich ebensowenig wichtig, wie auch die Verständlichkeit Deiner Formulierungen, aber damit sollen ja andere verantwortungsvoll umgehen. Insbesondere "Kunden"! Und wenn dann kräftig Schindluder getrieben wurde... dann musst unter Umständen Du den Kopf dafür hinhalten!

Liebe Grüße,

Felix Riesterer.