Я создаю систему приложений, состоящую из части сервера «в облаке» и клиентской части, например приложения для iPhone или Android или веб-браузера.
Серверная сторона реализована в PHP (LAMP) и сегодня является очень простым сервером с множеством php-файлов, обслуживающих каждый тип запросов метода, таких как getCustomers.php, addNewCustomer.php и т. Д. Кроме того, до сих пор никакой механизм безопасности не использовался вообще, и провайдер, на котором размещен сервер, не предоставляет SSL. Правильно, SSL не является вариантом безопасности.
Теперь я хочу подготовить свою старую систему и сделать ее:
1) Услуга True RESTful и
2) Добавьте безопасность, пользователи должны пройти аутентификацию и авторизацию, но пароли в обычном тексте, конечно, неприемлемы.
Мой вопрос просто в том, как мне достичь и понять пункты 1) и 2) выше? Есть ли какой-либо учебник, глава книги или статья в блоге, в которой описывается это вместе в одной части? Или мне нужно собирать информацию, разбрызганную по всему Интернету, а затем попытаться объединить их как можно лучше?
И, пожалуйста, если вы знаете ответ, и теперь я надеюсь, что я не слишком груб, не просто скажите oAuth this или openID, что вместо этого я буду признателен за ясное объяснение того, как или указатели, например, в статьях блога, объясняющих это. Излишне говорить, что я искал в сети, как маньяк, но, к моему большому удивлению, не смог найти хороший ответ !?
С Уважением,
Стив
Есть ли учебное пособие, глава книги или статья в блоге, в которой описывается это придуманное в одной пьесе?
Я могу рекомендовать REST на практике – Hypermedia System Architecture в качестве руководства по созданию систем HATEOAS . У него нет образцов PHP, но он включает в себя полную главу о проблемах веб-безопасности, охватывая HTTP Basic и Digest Auth, OpenID и OAuth и векторы атак, о которых нужно знать.
Вместо того, чтобы изобретать / строить решение, я бы использовал одну из многих фреймворков PHP для служб RESTful. http://www.recessframework.org/ довольно всеобъемлющий, хотя почти наверняка вам придется расширить его, включив аутентификацию.
http://phprestsql.sourceforge.net/ поддерживает аутентификацию из коробки, но полагается на HTTPS для шифрования паролей открытого текста; вы должны иметь возможность расширить его, когда будете разбираться в том, как бороться с аутентификацией.
Подтверждение подлинности: поскольку REST предназначен как можно больше использовать стандарты HTTP, я бы рекомендовал использовать механизмы проверки подлинности HTTP, подробно описанные в http://php.net/manual/en/features.http-auth.php (а также в документах W3C).