Использование IP-адресов клиентов в качестве IP-адресов серверов - PullRequest
1 голос
/ 27 ноября 2009

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

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

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

Спасибо

Кайл

Ответы [ 5 ]

5 голосов
/ 27 ноября 2009

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

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

0 голосов
/ 27 ноября 2009

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

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

0 голосов
/ 27 ноября 2009

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

0 голосов
/ 27 ноября 2009

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

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

0 голосов
/ 27 ноября 2009

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

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

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

...