1

Есть этот сервер, к которому у меня есть доступ к удаленному рабочему столу. Это машина Windows, и я использую ее для развертывания кода на промежуточном сервере (который также работает на этом компьютере), поэтому мы можем протестировать наш запрос на извлечение перед тем, как объединить его с разработкой ветки. Сейчас я делаю это вручную, но я уже написал небольшой пакетный скрипт, который позволяет мне автоматизировать процесс. Так что теперь мне нужно только подключиться к этому компьютеру и запустить этот скрипт, предоставив ему некоторые параметры. Это все еще боль, и я хочу настроить команду слеша https://api.slack.com/slash-commands в слабости нашей команды, чтобы иметь возможность запускать этот скрипт прямо из канала команды нашей команды. Итак, для этого мне нужен веб-сервер, доступный из внешней сети, для отправки туда моего POST-запроса с параметрами. Но а. эта машина стоит за нашей работой. Там нет сервера, который может принять такой запрос

Я немного потерян. Если бы я мог настроить какой-либо сервер для прослушивания этого запроса, он все равно не был бы доступен для внешнего Интернета, верно? или это будет? Но тогда не будет ли это угрозой безопасности выставлять такую конечную точку для запросов POST?

Так что у меня есть эта смутная идея, которая может быть глупой, но я просто хочу, чтобы кто-то, имеющий опыт в этих вещах, сказал мне, где искать, чтобы дать мне направление. Так что я думаю, может быть, я мог бы установить какой-нибудь сервис (например, демон), который будет постоянно работать на этом удаленном компьютере и время от времени проверять какой-нибудь другой сервер. Как пинговать какой-нибудь сервер в Интернете частыми GET-запросами. Этот другой сервер будет общедоступным сервером, доступным для моей слабой интеграции. Он получит запрос POST с моими параметрами из slack и сохранит его. Затем, когда придет следующий GET с моего удаленного компьютера, он ответит тем, что я ему отправил.

Это, наверное, очень глупая идея, но это единственное, что у меня есть. Какие-либо предложения? Комментарии?

3 ответа3

2

Отказ от ответственности - если вы ищете специфику Windows, в этом ответе его нет (я системный администратор Linux, поэтому я разбираюсь в технологиях и делал подобные вещи в среде Linux - Windows будет похожа)

Есть (по крайней мере) два способа решения этой проблемы - В зависимости от ваших временных рамок, ваша идея иметь внешний сервер, который вы можете регулярно устанавливать для запуска развертывания, является хорошей - она обеспечивает уровень изоляции вашего сеть при выполнении работы.

Альтернативным способом будет запуск веб-сервера в вашей локальной сети. Вы должны иметь возможность добавить на свой компьютер стандартный стек WAMP (Windows, Apache, MySQL, PHP), а затем кодировать веб-сайт PHP для обработки веб-запросов, SANITIZE INPUT и выполнить скрипт. Вам также потребуется перенести / проколоть соответствующий порт от вашего маршрутизатора до веб-сервера - и, для хорошей меры, возможно, также потребуется включить HTTPS на нем.

Вариант C будет состоять в том, чтобы настроить WAMP, как указано выше, и получить LEB (нижний предел), а также настроить в качестве VPN-сервера на LEB и использовать веб-сервер в качестве клиента. Настройте NAT, межсетевой экран и переадресацию портов на LEB, чтобы обойти внутреннюю VPN и позволить трафику проходить по мере необходимости. Вам также может потребоваться установить значение MTU на коробке 1400 или около того, потому что вы инкапсулируете VPN в VPN.

1

Ajax Ajax - это традиционный способ выполнения асинхронного HTTP-запроса. Данные могут быть отправлены с использованием метода HTTP POST и получены с использованием метода HTTP GET. Давайте посмотрим и сделаем запрос GET. Я буду использовать JSONPlaceholder, бесплатный онлайн REST API для разработчиков, который возвращает случайные данные в формате JSON.

Чтобы сделать HTTP-вызов в Ajax, вы должны инициализировать новый метод XMLHttpRequest (), указать конечную точку URL-адреса и метод HTTP (в данном случае, GET). Наконец, мы используем метод open () для связи метода HTTP и конечной точки URL-адреса и вызываем метод send () для запуска запроса.

Мы записываем HTTP-ответ на консоль, используя свойство XMLHTTPRequest.onreadystatechange, которое содержит обработчик событий, который будет вызываться при активации события readystatechanged.

const Http = new XMLHttpRequest (); const url = 'https: //jsonplaceholder.typicode.com/posts'; Http.open ("GET", URL); Http.send (); Http.onreadystatechange = (e) => {console.log (Http.responseText)} Если вы видите консоль вашего браузера, он вернет матрицу данных в формате JSON. Но как мы узнаем, что запрос сделан? Другими словами, как мы можем обрабатывать ответы с помощью Ajax?

Свойство onreadystatechange имеет два метода: readyState и status, которые позволяют нам проверять состояние нашего запроса.

Если readyState равен 4, это означает, что запрос выполнен. Свойство readyState имеет 5 ответов. Узнайте больше об этом здесь.

Помимо прямого вызова Ajax с помощью JavaScript, существуют и другие более мощные методы для выполнения HTTP-вызова, такие как $.Ajax, который является методом jQuery. Я буду обсуждать это сейчас.

0

Опираясь на отличные моменты, сделанные @davidgo.

  1. Установите полный стек на локальный компьютер с WAMP.

  2. Откройте безопасный туннель к Интернету. Вы можете создать это самостоятельно или использовать существующий продукт. Я могу порекомендовать ngrok, который предоставляет защищенный туннель VPN из коробки и прекрасно работает со Slack.

  3. Обратитесь в отдел безопасности / политики безопасности вашей компании, чтобы убедиться, что ваше решение соответствует требованиям.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .