Как безопасно общаться между PHP и WCF - PullRequest
2 голосов
/ 16 февраля 2011

Моя система основана на .net. Их система основана на PHP. Мы хотим обмениваться информацией для поиска и добавлять данные в соответствующие базы данных. Это должно быть сделано безопасно, и две системы будут единственными игроками в этой игре.

Я проводил некоторые исследования, но вещи, связанные с безопасностью, всегда отталкивали меня. Я должен признать, что у меня возникают некоторые проблемы с полным пониманием того, что все находится в файле конфигурации (web.config на сайте веб-службы WCF).

С чего мне начать, чтобы обеспечить безопасную передачу данных? Предполагая, что я разберусь с привязкой, отправят ли они имя пользователя и пароль, которые мне придется извлечь из их сообщения? Клиент будет подключаться к адресу https.

Ответы [ 3 ]

3 голосов
/ 17 февраля 2011

Есть действительно много способов ответить на этот вопрос ...

Я предполагаю, что их PHP-приложение будет взаимодействовать с вашим сервером WCF с помощью SOAP?

Итак, у WCF есть 2 способа:защита вещей на уровне транспорта или на уровне сообщений.В основном, если вы включаете безопасность транспортного уровня, то он шифрует все соединение.Это означает, что он будет использовать HTTPS.Это, в свою очередь, означает, что весь разговор зашифрован, как если бы вы отправляли информацию о своей кредитной карте на веб-сайт в веб-форме.Это одинаково безопасно.Альтернатива - безопасность на уровне сообщений.Это означает, что вместо шифрования всего соединения связь будет происходить по обычному незашифрованному HTTP, но само фактическое сообщение будет зашифровано перед передачей по проводной сети.

Если ваша служба размещена в IIS, тосамое простое, что можно сделать, это просто использовать BasicHttpBinding и включить безопасность транспорта.Затем в IIS используйте SSL-сертификат и HTTPS.

Это будет обрабатывать шифрование сообщений.В прошлом, если вам нужно обрабатывать «логин» как имя пользователя и пароль, WCF имеет встроенный способ для этого.Это может помочь: http://nirajrules.wordpress.com/2009/05/22/username-over-https-custombinding-with-wcf%E2%80%99s-channelfactory-interface/

3 голосов
/ 17 февраля 2011

PHP сам по себе не поддерживает безопасность сообщений. Вам нужны дополнительные рамки для его поддержки. Я интегрировал клиента WCF с веб-службой, предоставляющей PHP, с защитой сообщений, обеспечиваемой инфраструктурой веб-служб WSO2 . Инфраструктура WSO2 не обладает таким количеством функций, как WCF (по крайней мере, разработчики PHP так говорили), она поддерживает асимметричную безопасность (WS-Security) с сертификатом сервера и клиента (профилем маркера сертификата X.509), а также с поддержкой имени пользователя и пароля токен (имя пользователя, профиль токена с переваренным паролем). Сертификаты используются для шифрования и подписи сообщений, имя пользователя - для аутентификации. Эта интеграция была довольно сложной задачей, потому что WCF, напротив, не поддерживает профиль токена имени пользователя с переваренным паролем, и мы должны реализовать его самостоятельно.

Так что, если вы можете использовать HTTPS (безопасность транспорта) с учетными данными сообщения (профиль токена имени пользователя с простым паролем), определенно идите по этому пути. Это гораздо менее сложный и гораздо более простой.

1 голос
/ 16 февраля 2011

Вам действительно нужно будет определить ограничения PHP с точки зрения стандартов веб-сервисов.Может ли он обрабатывать WS-Security, например?

Вы можете быть ограничены basicHttpBinding через SSL, отправляя имя пользователя / пароль в заголовке SOAP (при условии, что он обрабатывает заголовки SOAP).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...