Почему моя программа отправляет "анонимные IP-пакеты" и как мне это остановить?
Итак, мы только что получили сегодня сообщение о том, что один из наших клиентских брандмауэров блокирует наши HTTP-запросы, потому что "[программное обеспечение] отправляет анонимные пакеты на наш брандмауэр (брандмауэр Microsoft TMG), поэтому брандмауэр отбрасывает пакеты, поскольку анонимный доступ [не ] позволил."
Для нашего кода подключения мы используем C++ с curl, и при необходимости мы возвращаемся к IEDownloadToFile. Я не писал оригинальный код и не являюсь сетевым программистом, поэтому пришел сюда за помощью. Итак, мои вопросы: что такое анонимные пакеты? Что я делаю в curl, что может вызвать анонимные пакеты? Где я могу найти больше информации о решении этой проблемы? Спасибо!
3 ответа
Они имеют в виду, что ваше приложение должно проходить проверку подлинности с помощью брандмауэра. Эта ссылка предоставляет обширную информацию о продукте TMG. Ваш клиент, вероятно, имеет такую конфигурацию:
Требовать от пользователей аутентификации всякий раз, когда они запрашивают доступ в Интернет. Каждый веб-сеанс требует аутентификации.
При использовании этого метода обратите внимание на следующее:
Анонимный веб-доступ отключен.
Forefront TMG запрашивает учетные данные пользователя и проверяет их перед проверкой на соответствие политике брандмауэра. Если пользователи не могут пройти аутентификацию, их запрос на доступ отклоняется.
Этот метод определяется для каждой сети. Большинство неинтерактивных клиентов, таких как клиент Центра обновления Windows, не могут пройти проверку подлинности и поэтому им отказано в доступе.
Поэтому, когда пользователь открывает свой веб-браузер и пытается получить доступ к веб-странице, у него появляется всплывающее окно с запросом учетных данных, поскольку брандмауэр перехватил их веб-запрос и отправил свою собственную страницу аутентификации. Когда пользователь аутентифицируется, брандмауэр пропускает веб-трафик.
Ваше автоматизированное приложение не проходит проверку подлинности с помощью брандмауэра, поэтому брандмауэр отбрасывает пакеты, и ваш трафик классифицируется как анонимный.
Извините, я не знаю, как сделать так, чтобы ваше приложение аутентифицировалось с помощью брандмауэра. Если ваше приложение идет по определенным URL-адресам, операторы сайта могут внести их в белый список.
Согласно этой странице, вы должны получить сообщение об ошибке 407: проверка подлинности прокси-сервера требуется от curl. Попробуйте добавить эти параметры в инициализацию curl, но у вас все еще есть проблема, запрашивая у пользователя интерактивные учетные данные:
CURLOPT_HTTPAUTH: add CURLAUTH_NTLM
CURLOPT_PROXYAUTH: add CURLAUTH_NTLM
set CURLOPT_FOLLOWLOCATION
В стандартном сетевом языке не существует понятия "анонимный пакет". Брандмауэр вашего клиента составляет условия, или где-то в очереди произошла ошибка, прежде чем сообщение дошло до вас. В любом случае вам понадобится получить разъяснения от вашего клиента, поставщика брандмауэра или документации.
Я согласен с Bdonlan. В контексте запросов http "анонимные пакеты" в лучшем случае расплывчаты и неоднозначны. Может быть, они имеют в виду, что нет кода реферера? Или они требуют http-аутентификации? Или вам нужно установить ключ сеанса, прежде чем вы сможете получить доступ к конкретному URL, который вы запрашиваете? Вам нужны актуальные технические данные от вашего клиента.