Veröffentlicht 13. Februar 201213 j Hallo Leute, ich habe folgendes vor: Ich möchte ein Script schreiben, welches auf dem Server A liegt und wartet, bis ein anderes Script von Server B den Kontakt sucht, eine Variable übergibt und die Rückgabe einer anderen erwartet. Hat jemand eine Idee/Tipp/Vorschlag, wie ich dies realisieren könnte? Vielen Dank im Voraus String
13. Februar 201213 j Autor Vielen Dank, ich werde mich mit diesem Thema beschäftigen und bei Fragen schreien grüße String
13. Februar 201213 j Da du mit PHP arbeitest (wenn ich dein anderes Topic richtig werte), würde ich dir file streams ans Herz legen. Sprich du öffnest mit file_get_contents() eine URL und er gibt dir den Response als String zurück. Oder du befasst didich mit Sockets, damit sind komplexerecDinge möglich, aber das ganze wird auch schwerer zu programmieren.
13. Februar 201213 j Autor An file Streaming hatte ich auch schon gedacht. Mir geht es im speziellen um eine Art Authentifizierung eines von mir entwickelten Moduls. Ich möchte also, dass das Modul bei der ersten Nutzung nach einer Authentifizierung fragt. Was mich vor einer einfachen Copy&Paste-Verbreitung meines Moduls schützen soll. Mir ist klar, dass dies nicht wirklich sicher ist, aber diese Funktion soll es einfachen DAU's erschweren mein Modul zu verbreiten.
13. Februar 201213 j Solltest du dein "Modul" im großen Stil verbreiten wollen, bleiben dir nur File Streams übrig, da viele Hoster socket Verbindungen blockieren.
13. Februar 201213 j Autor Naja im großen Stil nicht unbedingt, allerdings habe ich schon einige unter die Leute gebracht. Okay, ich werde mal sehen, wie ich diese "Authentifizierung" mit FileStreams hinbekomme. das PHP-Manuel wird sicher hilfreich sein
13. Februar 201213 j Schildere doch mal das ganze Problem. Es geht ja hier nicht nur um eine Kommunikation zwischen zwei Servern.
15. Februar 201213 j Autor Ich brauche 2 Scripte: Script 1, welches von mir in mein Modul eingebaut wird. Dieses Script soll Kontakt mit Script Nummer 2 aufnehmen, welches auf meinem Server liegt. Script 1 übergibt 2 Parameter und erwartet ein Parameter zurück. Script 2, welches auf meinem Server liegt nimmt die beiden Parameter entgegen, greift auf meine Datenbank zu und führt eine Überprüfung durch. Im Anschluss daran, gibt es ein Parameter an Script 1 zurück, wodurch Script 1 eine dafür vorgesehene Routine ausführt. Genau das brauche ich. Leider hatte ich bisher keinen Erfolg
15. Februar 201213 j Server: <?php if($_GET['param1'] == 'param1Value' && $_GET['param2'] == 'param2Value') { // db actions... echo $result; } [/php] Client: [php] <?php $result = file_get_contents('http://lala.com/server.php?param1=param1Value¶m2=param2Value'); if($result == 'valid') // okay else // fail So als Denkanstoss
15. Februar 201213 j Autor So habe ich es versucht: Client: <?php $to_transfer = array( "id" => "359322667121", "name" => "site" ); $url_to_target = "http://test.de/test.php"; function modula_array2query($array, $qm=true) { $query = $qm ? "?" : ""; foreach($array AS $key => $value) { $query.= "&". urlencode($key) ."=". urlencode($value); } return $query; } function modula_transfer2url($url, $query="") { $location = $url . $query; if(!headers_sent($filename, $linenum)) { header("location: {$location}"); exit; } else { echo '<script type="text/javascript">'; echo 'window.location.href = "'.$location.'";'; echo '</script>'; exit; } } $querystring = modula_array2query($to_transfer); modula_transfer2url($url_to_target, $querystring); ?> Server: <?php echo "<pre>"; echo "Via GET übergebene Variablen\n"; print_r($_GET); echo "Via POST übergebene Variablen\n"; print_r($_POST); echo "</pre>"; ?> So hatte ich es versucht, er übergibt die Parameter an meinen Server leitet mich jedoch zum server weiter und ich komme nicht zurück auf mein Clientscript, wodurch meine Authentifizierungsroutine nicht fertig gestellt wird. Vielen dank für dein Code, könntest du mir sagen, wo mein Fehler ist?
15. Februar 201213 j Autor Dein Script ist die Lösung. Sehr geil vielen Dank. funktioniert mein Script nicht wegen meiner Location-Weiterleitung?
15. Februar 201213 j Du sendest an den Client eine Headerinformation, dass er eine neue location aufrufen soll oder Du sendest etwas JavaScript. Was soll das bezwecken? Bitte schildere das ganze Problem, denn anhand des Codeschnippsels ist keine Authentifizierung nachvollziehbar.
15. Februar 201213 j Autor echo '<script type="text/javascript">'; echo 'window.location.href = "'.$location.'";'; echo '</script>'; ich lasse die Headerinformation mit dem jsscript erneut senden, da zu diesem Zeitpunkt die Headerinformation bereits gesendet wurden. Mein Script oben ist eine starke Vereinfachung und hat noch nicht mit dem Authentifizierungsscript zu tun. Ich habe meinen Fehler bereits gefunden. Durch das erneute Senden der Headerinformationen und weiterleiten zum Server fährt mein Script in eine Sackgasse. Ich habe viel zu umständlich gedacht. der Code von MLX ist genau das was ich brauchte. Danke dir MLX
15. Februar 201213 j Achja, hiermit kannst du HTTP Request URLs aus einem Array bauen: PHP: http_build_query - Manual
15. Februar 201213 j wie validierst du das ganze denn dann? Ich meine die Url kann so ja erstmal jeder aufrufen
15. Februar 201213 j Ich denke mal er gibt jedem "Kunden" einen Key, den er dort prüfen möchte, was aber meiner Meinung der Aufwand nicht wert ist. Das macht mehr Probleme als es Nutzen bringt
15. Februar 201213 j Ich meine eigentlich eher, was er da treibt ist witzlos. Das schaue ich mir einmal mit Fiddler an und fake mir die Antwort vom Server. Dann kann man die validierung auch gleich weglassen. imo.
15. Februar 201213 j Das kannst du eigentlich bei jedem Programm, das den Key Online abgleicht. Bei PHP basierten Applikationen ist es allerdings besonders unsicher, da jeder den Source einsehen und ggf auch verschlüsselungsalgorithmen nachbauen kann. Wobei.man gar nicht so weit gehen muss. Abfrage ausbauen, die isValid Variable fix auf true setzen und die Sache ist gegessen...
15. Februar 201213 j Bei PHP basierten Applikationen ist es allerdings besonders unsicher, da jeder den Source einsehen und ggf auch verschlüsselungsalgorithmen nachbauen kann. Ah ja, und wo ist das Problem, wenn ich den Algorithmus einsehen kann? Wer einen Verschlüsselungsalgorithmus entwirft und den Code unter Verschluss hält, der gehört standrechtlich aufgehangen: Security through obscurity
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.