Как обезопасить почтовый запрос между двумя приложениями CakePHP

1

Я создал два приложения CakePHP на двух разных серверах.

Приложение A необходимо отправить массив данных в приложение B в POST с помощью curl:

$ch = curl_init();  
curl_setopt($ch,CURLOPT_URL,"http://example.com/application_B");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_POST, count($data));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  
$output=curl_exec($ch);
curl_close($ch);

Какова наилучшая практика, чтобы приложение B приложения не принимало никаких других запросов, запрашиваемых приложением A?
Проверяет IP-адрес достаточно? Или CakePHP построил метод для этого?

PS: Я знал, что HttpSocket лучше CURL в CakePHP, но мое приложение A использует CakePHP 1.1 (не моя воля)

Теги:
curl
cakephp

2 ответа

3
Лучший ответ

Есть несколько способов сделать это. Cake не предоставляет никаких, только адаптеров auth для проверки определенных систем auth.

Сначала используйте соединение HTTPS между приложениями. Отключить HTTP для API.

Вы можете использовать аутентификацию без учета состояния, используя user/pass и токен. Запросите токен, отправив пользователя/пароль и получите ограниченный по времени токен обратно, который привязан к IP-адресу, который его запросил. Ваши автоответчики будут обрабатывать запросы.

Или просто идите прямо к Oauth.

  • 0
    Спасибо! Я попробую с Оутом. Жаль, что CakePHP не предоставляет способов обеспечить это по умолчанию.
1

Как сказал бурзум, есть много способов. Очень простой способ состоял бы в том, чтобы иметь значение ключевой строки для обоих приложений. Хэшируйте данные сообщения с помощью этого ключа в приложении A и передайте хэш-значение вместе с вашим массивом данных. Затем хешируйте данные (без хэш-значения) снова в приложении B. Сравните два хэша. Если значения хэша совпадают, то данные верны.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню