Вопросы по написанию прокси для изменения IP-адреса клиента при отправке исходящего http-сообщения на сайт - PullRequest
0 голосов
/ 27 июля 2011

Хорошо, во-первых, я в основном не осведомлен обо всех вещах HTTP, поэтому, если у меня есть неправильные представления, поправьте меня.

Фон

Существует веб-сайт, который запретил мне публиковать сообщения. Ничего непристойного не происходит, я просто «неудобный человек» для некоторых местных политиков. Дело в том, что хотя я могу просматривать сайт с любого IP-адреса и отправлять сообщения из учетных записей, если я использую IP-адрес, отличный от моего, мои сообщения отклоняются (просто уходят в космос, чтобы никогда не возвращаться), если я пытаюсь опубликовать сообщение с моего IP-адреса. собственный IP.

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

Решение

Я хотел бы написать, как я надеюсь, относительно простой прокси-сервер, работающий на моей собственной машине с использованием Си и необработанных сокетов. Используя что-то вроде FoxyProxy, я надеюсь направить трафик на / с этого локального прокси только для этого сайта. Я надеюсь, что написание прокси-сервера так же просто, как замена случайного IP на исходящие (пост) пакеты. Это правильно? Пытаются ли серверы «подтвердить» сообщение (которое никогда не вернется ко мне, потому что это не мой IP), или они просто отправят сообщение?

Кроме того, чтобы различать обычный трафик на сайте (для которого прокси-сервер ничего не должен делать) и публикации трафика, я предполагаю, что мне нужно просмотреть пакеты, чтобы отличить один тип от другого. Предположительно это различие легко сделать?

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

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 27 июля 2011

Совершенно независимо от морального вопроса (то есть, если это не ваш веб-сайт, то у вас нет внутреннего «права» размещать там сообщения), я не думаю, что вы можете сделать это.

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

Лучше всего поговорить о проблеме с администратором веб-сайта. Если они по-прежнему не хотят, чтобы вы участвовали, вам нужно просто уважать их решение и уйти.


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

Я бы посоветовал вам подойти к этому пути «подотчетности», а не каким-либо техническим путем. То есть, если эти люди подотчетны вам, используйте эту ответственность, чтобы получить то, что вы хотите. Если они не подотчетны вам, то, вероятно, вы ничего не можете сделать.

...