Я работаю над интеграцией reCAPTCHA
с моей страницей регистрации, и все работает нормально, за исключением одной странной проблемы.
Я протестировал этот код на всех локальных машинах и на нашем тестовом сервере (окне), и все работает. Мы только что установили Linux-сервер (Cents OS 6.0
) и тестировал мою реализацию, которая не работает на машине Linux. Независимо от того, правильно я набираю капчу или нет, я всегда получаю ложный ответ. Это мой Java-код, с помощью которого я вызываю Google reCAPTCHA API для проверки
reCaptcha.checkAnswer(request.getRemoteAddr(), request.getParameter("challengeValue"),
request.getParameter("responseValue"));
Я пытался отлаживать код, но пока не смог добиться успеха, единственная разница, которую я заметил, касается request.getRemoteAddr()
.
request.getRemoteAddr()
дает разные IP-адреса для Linux и оконного сервера. (Тот же браузер)
Сервер Windows и Linux работают на одной машине с одинаковым IP-адресом (своего рода виртуальный ящик).
Я использую recaptcha4j интегрировать reCaptcha
API.
Мне кажется, проблема связана с неизвестными мне настройками или конфигурациями Linux. Я даже разговариваю с нашим ИТ-специалистом, и он тоже, кажется, ничего не понимает.
Я тестировал это на Ubuntu, и он отлично работал даже на этой машине ... похоже, проблема с конфигурацией с Cent OS6
Я уверен, что отличие Твоего тестового сервера от рабочего сервера - межсетевой экран.
Убедитесь, что он принимает вывод новый запрос к серверам Google и установлен от них.
Если вы используете iptables одним из способов добиться этого утверждения:
iptables -A INPUT -i eth0 -p tcp -s <google_ipv4_1> -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -d <google_ipv4_1> -j ACCEPT
Вам необходимо указать браузер, операционную систему и любые плагины, которые вы используете, которые могут иметь значение. Обратите внимание на все, что может повлиять на обработку файлов cookie.
Возникает ли у вас проблема на этом хосте Linux с другим браузером? А как насчет другого хоста Linux?
ЕСЛИ ваши экземпляры виртуальных ящиков используют мостовую сеть, они могут использовать разные IP-адреса, полученные от DHCP, несмотря на то, что находятся на одном физическом хосте.