Was ist der beste oder einfachste Weg, um ein Skript auf http-Anfrage auszuführen

407
dKab

Es gibt diesen Server, auf den ich Remote-Desktop-Zugriff habe. Es ist ein Windows-Computer, und ich verwende es, um Code für den Staging-Server bereitzustellen (der auch auf diesem Computer ausgeführt wird), sodass wir unsere Pull-Anforderung testen können, bevor sie zusammengefügt werden, um eine Verzweigung zu entwickeln. Im Moment mache ich es manuell, aber ich habe bereits ein kleines Batch-Skript geschrieben, mit dem ich den Prozess automatisieren kann. Im Grunde muss ich jetzt nur noch eine Verbindung zu diesem Computer herstellen und dieses Skript ausführen, um einige Parameter bereitzustellen. Es ist immer noch ein Schmerz und ich möchte den Slash-Befehl https://api.slack.com/slash-commands einrichten in unserem Team ist es schwierig, diese Skriptausführung direkt aus unserem Team-Slack-Kanal auszulösen. Dafür brauche ich einen Webserver, der vom äußeren Web aus erreichbar ist, um dort meine POST-Anfrage mit Params zu senden. Aber a. diese maschine steht hinter unserer arbeit vpn b. Es gibt keinen Server, der eine solche Anfrage akzeptieren kann

Ich bin ein bisschen verloren. Event, wenn ich dort einen Server einrichten könnte, um diese Anfrage anzuhören, wäre er trotzdem nicht für das äußere Internet zugänglich, oder? oder würde es Aber wäre es nicht ein Sicherheitsrisiko, einen solchen Endpunkt für POST-Anforderungen bereitzustellen?

Ich habe also diese vage Idee, die vielleicht dumm ist, aber ich möchte nur, dass jemand, der mit diesen Dingen erfahren ist, mir sagt, wo ich suchen muss, um mir Richtung zu geben. Ich denke, ich könnte vielleicht einen Dienst einrichten (wie den Daemon), der ständig auf diesem Remote-Computer ausgeführt wird und ab und zu einen anderen Server überprüft. Wie das Pingen eines Servers im Internet mit häufigen GET-Anfragen. Dieser andere Server wäre ein öffentlicher Server, der für meine Integration von Slack zugänglich ist. Es würde eine POST-Anfrage mit meinen Params von Slack erhalten und speichern. Wenn dann das nächste GET von meinem entfernten Computer kommt, würde es mit dem antworten, was ich ihm geschickt habe.

Das ist wahrscheinlich eine sehr dumme Idee, aber das ist die einzige, die ich habe. Irgendwelche Vorschläge? Bemerkungen?

1

2 Antworten auf die Frage

2
davidgo

Haftungsausschluss - Wenn Sie nach Windows-Besonderheiten suchen, ist diese Antwort nicht verfügbar (Ich bin ein Linux-Systemadministrator, daher verstehe ich die Technologien und habe ähnliche Dinge in einer Linux-Umgebung getan - Windows wird ähnlich sein)

Es gibt (mindestens) zwei Möglichkeiten, dieses Problem zu lösen. Je nach Ihrem Zeitrahmen ist Ihre Idee, einen externen Server zu haben, den Sie regelmäßig leiten können, um eine Bereitstellung zu initiieren, gut - er bietet Ihnen eine Isolationsebene Netzwerk, während die Arbeit erledigt wird.

Alternativ können Sie einen Webserver in Ihrem LAN-System ausführen. Sie sollten in der Lage sein, Ihrem Computer einen Standard-WAMP-Stack (Windows, Apache, MySQL, PHP) hinzuzufügen, anschließend eine PHP-Website für die Bearbeitung der Webanfragen zu programmieren, DAS INPUT ZU SANITIEREN und das Skript auszuführen. Sie müssen außerdem einen geeigneten Port von Ihrem Router zum Webserver portforward / pinhole machen. Vielleicht möchten Sie auch HTTPS auf diesem Router aktivieren.

Eine Option C wäre, WAMP wie oben eingerichtet einzurichten, eine LEB (Low-End-Box) zu erhalten und als VPN-Server auf der LEB einzurichten und den Webserver als Client zu verwenden. Richten Sie NAT, Firewall und Portweiterleitung auf der LEB ein, um Ihr internes VPN zu umgehen und den Datenverkehr nach Bedarf zuzulassen. Möglicherweise müssen Sie auch die MTU der Box auf 1400 setzen, da Sie ein VPN in ein VPN kapseln.

0
Erik Kalkoken

Aufbauend auf den hervorragenden Punkten von @davidgo.

  1. Installieren Sie mit WAMP einen vollständigen Stack auf Ihrem lokalen Computer .

  2. Öffnen Sie einen sicheren Tunnel zum Internet. Sie können dies entweder selbst erstellen oder ein vorhandenes Produkt verwenden. Ich kann ngrok empfehlen, das einen sicheren VPN-Tunnel vorsieht und mit Slack gut funktioniert.

  3. Erkundigen Sie sich bei den Sicherheitsbüros / Sicherheitsrichtlinien Ihres Unternehmens, um sicherzustellen, dass Ihre Lösung die Anforderungen erfüllt.