Использование IP-адресов Клиентов в качестве IP-адресов Серверов

StackOverflow https://stackoverflow.com/questions/1807864

  •  05-07-2019
  •  | 
  •  

Вопрос

Это может быть один из тех вопросов типа "хм, почему?" но я подумал, что попробовать стоит.

Как можно из серверного приложения использовать IP-адрес клиентов в качестве IP-адреса приложений для другого веб-сайта?Основная идея заключается в том, что любая работа, выполняемая серверным приложением, рассматривается как работа самого клиента, а не статического IP сервера.

Я не уверен, сработает ли изменение HTTP-заголовков, но я могу ошибаться.Есть ли какая-либо документация по этому поводу?

Спасибо,

Кайл

Это было полезно?

Решение

Совершенно, совершенно невозможно.Вы даже не сможете открыть TCP-соединение, потому что сервер другого веб-сайта попытается установить связь с клиентом и потерпит неудачу.

IP-адрес - это не просто какой-то старый идентификатор, это фактически адрес на которые серверы отправят любой ответ.Подмена его в принципе имеет смысл только в том случае, если вы можете поместить свой запрос в один IP-пакет (который исключает TCP и, следовательно, HTTP) и не заинтересованы в ответе.Даже тогда это может привести к сбою, потому что маршрутизаторы вашего интернет-провайдера могут иметь правила защиты от подмены, которые отбрасывают пакеты с "внешними" IP-адресами, исходящими из "внутренних" сетей.

Другие советы

С какой стати законному приложению хотеть подделать свой IP-адрес?

Изменение HTTP-заголовков может сократить это, но, скорее всего, этого не произойдет.Зависит от того, насколько наивен другой сервер.

Звучит так, как будто вы пытаетесь сделать что-то неправильно, не могли бы вы дать немного больше информации о том, что именно представляет собой вариант использования?

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

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

Опять же, предполагая, что мы говорим о HTTP, еще одна идея, которая пришла мне в голову, заключалась бы в перенаправлении вашего клиента на другой сервер.Пока все необходимые данные находятся в URI, вы могли бы посоветовать браузеру клиента подключиться к другому серверу с помощью URI вашего собственного создания, который мог бы нести любую дополнительную ценность, которую обработка вашего сервера добавляет к запросу.

Десятилетия назад дизайнер интернета спросил: "как мы можем помешать Кайлу Розендо совершить такую коварную вещь?"

Если клиент сотрудничает, вы можете установить некоторое программное обеспечение на клиентский компьютер и выполнять работу оттуда.Например, подписанный java-апплет на вашей странице.[шутка] Если клиент не сотрудничает, установите какой-нибудь троянский вирус[/шутка]

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top