Я нахожусь в середине разработки веб-приложения для социальных сетей PHP, которое будет поддерживаться различными веб-службами, каждый из которых работает с REST API. Веб-сервисы, вероятно, будут реализованы в Java с уровнем данных MySQL, но вся суть того, что я пытаюсь сделать, - это действительно упростить реализацию модулей на разных языках/хранилищах данных в зависимости от того, что является approriate.Защита REST API
Так, например, когда пользователь регистрируется в приложении через форму входа, код PHP подключается к веб-службе, а POST - имя пользователя и пароль, чтобы проверить, должны ли они быть аутентифицированы. Обычно я должен начать сеанс и хранить его в хранилище данных сеанса.
Другим примером может быть, если пользователь отправляет личное сообщение другому пользователю. Сообщение будет отправлено на веб-службу приватного обмена сообщениями, которая будет заботиться обо всем хранилище. Аналогичным образом с веб-службой можно связаться для извлечения сообщений для пользователя.
Хотя я понимаю, как реализовать веб-службу REST в Java и установить соединение с ней на PHP, я совершенно не уверен, как защитить передаваемые данные и убедиться, что это данные пользователей, которые возвращаются. Если, например, я хочу получить все пользовательские личные сообщения, как известно веб-службе, чтобы вернуть этих пользователей. Я мог бы передать этот идентификатор пользователей как часть URL-адреса GET, но, конечно же, любой старый пользователь мог бы просто вычислить URL-адрес GET и использовать его для поиска сообщений других людей. Я подумал, может быть, я могу передать идентификатор сеанса и IP-адрес, который позволит мне проверить хранилище данных сеанса и убедиться, что он правильный пользователь?
Чтобы защитить важные данные - например, имя пользователя/пароль, я думал, что просто передам его через SSL.
Надеюсь, это объяснит мою проблему лучше.
Thanks
Разрабатываете ли вы решение для Интернета или интрасети? Используете ли вы продукты Microsoft (ASP.NET MVC или WFC 3.5/4.0) для создания службы и IIS для ее размещения? Вы хотите иметь аутентификацию или конфиденциальность?С дополнительной информацией вы могли бы получить лучший ответ. – Oleg
Я добавил намного больше информации в свете комментария Олега. Извините за неясность предыдущего вопроса - написано очень поздно ночью! – christophmccann