Использование IP-адресов Клиентов в качестве IP-адресов Серверов
-
05-07-2019 - |
Вопрос
Это может быть один из тех вопросов типа "хм, почему?" но я подумал, что попробовать стоит.
Как можно из серверного приложения использовать IP-адрес клиентов в качестве IP-адреса приложений для другого веб-сайта?Основная идея заключается в том, что любая работа, выполняемая серверным приложением, рассматривается как работа самого клиента, а не статического IP сервера.
Я не уверен, сработает ли изменение HTTP-заголовков, но я могу ошибаться.Есть ли какая-либо документация по этому поводу?
Спасибо,
Кайл
Решение
Совершенно, совершенно невозможно.Вы даже не сможете открыть TCP-соединение, потому что сервер другого веб-сайта попытается установить связь с клиентом и потерпит неудачу.
IP-адрес - это не просто какой-то старый идентификатор, это фактически адрес на которые серверы отправят любой ответ.Подмена его в принципе имеет смысл только в том случае, если вы можете поместить свой запрос в один IP-пакет (который исключает TCP и, следовательно, HTTP) и не заинтересованы в ответе.Даже тогда это может привести к сбою, потому что маршрутизаторы вашего интернет-провайдера могут иметь правила защиты от подмены, которые отбрасывают пакеты с "внешними" IP-адресами, исходящими из "внутренних" сетей.
Другие советы
С какой стати законному приложению хотеть подделать свой IP-адрес?
Изменение HTTP-заголовков может сократить это, но, скорее всего, этого не произойдет.Зависит от того, насколько наивен другой сервер.
Звучит так, как будто вы пытаетесь сделать что-то неправильно, не могли бы вы дать немного больше информации о том, что именно представляет собой вариант использования?
Если между ними не требуется никакой обработки, вы можете выполнить переадресацию портов через IP-брандмауэр вашего сервера, чтобы клиент подключался к вашему серверу, но в конечном итоге общался с другим сервером.
Если ваш сервер задействован больше, то правильным решением было бы передать IP-адрес клиента другому серверу как часть URL-адреса (если это веб-приложение) или где-либо еще в данных (если нет), чтобы принимающий сервер мог знать и корректно регистрировать процесс без какой-либо необходимости в подделке.Конечно, это также потребовало бы внесения изменений в другое приложение.
Опять же, предполагая, что мы говорим о HTTP, еще одна идея, которая пришла мне в голову, заключалась бы в перенаправлении вашего клиента на другой сервер.Пока все необходимые данные находятся в URI, вы могли бы посоветовать браузеру клиента подключиться к другому серверу с помощью URI вашего собственного создания, который мог бы нести любую дополнительную ценность, которую обработка вашего сервера добавляет к запросу.
Десятилетия назад дизайнер интернета спросил: "как мы можем помешать Кайлу Розендо совершить такую коварную вещь?"
Если клиент сотрудничает, вы можете установить некоторое программное обеспечение на клиентский компьютер и выполнять работу оттуда.Например, подписанный java-апплет на вашей странице.[шутка] Если клиент не сотрудничает, установите какой-нибудь троянский вирус[/шутка]