Проверка reCAPTCHA от Google на стороне HTTP-Сервиса

06.11.19

Интеграция - WEB-интеграция

Код проверяет переданный токен reCAPTCHA от Google при вызове HTTP-Сервиса. Таким образом проверяем, отправил ли данные на наш HTTP-Сервис робот или реальный пользователь.

Если у Вас возникла необходимость реализовать HTTP-сервис c проверкой на робота при отправке. Т.е. чтобы в Вашем сервисе была реализована проверка на робота и он был менее подвержен DDOS атакам, можно воспользоваться сервисом от Google под названием "reCAPCTHA".

Подробное описание сервиса можно найти по ссылке: https://developers.google.com/recaptcha

Для его работы необходимо пройти регистрацию и получить секретные ключи клиентский и серверный.

Клиентский должен быть размещен в веб-форме, которая будет отправлять запрос к Вашему HTTP-Сервису (инструкция как разместить проверку на форме есть в описании по ссылке выше). А серверный, соответственно, необходимо использовать на стороне HTTP-Сервиса, при получении подтверждения от API Google, что пользователь отправивший данные на HTTP-Сервис является человеком, а не роботом.

API Google возвращает ответ в формате JSON, который можно легко разобрать на стороне 1С и получить подтверждение или отказ в том, что отправитель данных настоящий живой человек.

Ниже представлен пример кода, вызываемый при обработке полученного запроса HTTP-Сервисом.

Функция v1_RPCCreateRequest(Запрос)
	
	//Получаем из заголовков запроса токен, который передала веб-форма
	g_recaptcha_response = Запрос.Заголовки.Получить("g-recaptcha-response");
	Если g_recaptcha_response = Неопределено Тогда
		Ответ = Новый HTTPСервисОтвет(400);
		Возврат Ответ;
	КонецЕсли;
	
	//Формируем HTTP-Соединение
	АдресСервераОнлайнПроверки = "www.google.com";
	secret = "#####################"; //Это ваш серверный секретный ключ, полученный при регистрации капчи в гугле.
	РесурсНаСервере = "/recaptcha/api/siteverify?secret="+ secret +"&response="+g_recaptcha_response;
	Попытка
		ssl = Новый ЗащищенноеСоединениеOpenSSL;
		Соединение = Новый HTTPСоединение(АдресСервераОнлайнПроверки,,,,,,ssl);
	Исключение
		Сообщить("Не удалось установить соединение с сервером онлайн-проверки:" 
		+ Символы.ПС + ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
		Ответ = Новый HTTPСервисОтвет(400);
		Ответ.УстановитьТелоИзСтроки("Невозможно выполнить проверку ReCaptcha");
		Возврат Ответ;
	КонецПопытки;
	
	// посылаем запрос
	
	Попытка
		HTTPЗапрос = Новый HTTPЗапрос(РесурсНаСервере);
		Результат  = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
		Соединение = Неопределено;
		
		Если Результат.КодСостояния <> 200 Тогда
			Ответ = Новый HTTPСервисОтвет(400);
			Ответ.УстановитьТелоИзСтроки("Невозможно выполнить проверку ReCaptcha");
			Возврат Ответ;
		КонецЕсли;
		
		//Анализирует результат ответа от Google 
		ТелоЗапроса = Результат.ПолучитьТелоКакСтроку();	
		ЧтениеJSON = Новый ЧтениеJSON;
		ЧтениеJSON.УстановитьСтроку(ТелоЗапроса);
		СтруктураДанных = ПрочитатьJSON(ЧтениеJSON);
		
		Если Не СтруктураДанных.success Тогда
			Ответ = Новый HTTPСервисОтвет(400);
			Ответ.УстановитьТелоИзСтроки("Невозможно выполнить проверку ReCaptcha");
			Возврат Ответ;
		КонецЕсли;
	Исключение
		//Сообщить(ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
	КонецПопытки;
	
	Ответ = Новый HTTPСервисОтвет(200);
	Ответ.УстановитьТелоИзСтроки("Данные успешно загружены");
	ОбработатьЗапрос(Запрос, Ответ);
	
	Возврат Ответ;
КонецФункции

 

reCAPTCHA HTTP-Запрос POST HTTPS

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16297    14    18    

14

Интеграция 1С и Битрикс 24 — модуль синхронизации для обмена задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18515    10    15    

16

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    13127    34    8    

13

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

25200 руб.

28.05.2015    85875    26    51    

50
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. пользователь 15.09.22 21:20
Сообщение было скрыто модератором.
...
3. пользователь 14.03.23 23:13
Сообщение было скрыто модератором.
...
4. user1978484 22.01.24 11:03 Сейчас в теме
А что там за запрос в параметрах функции?
5. AVR 13 24.01.24 13:33 Сейчас в теме
(4) Это собственно HTTP-Запрос, который прилетел в 1С. Первой же строчкой функции из него заголовки получаются.
Оставьте свое сообщение