Intereting Posts
Почему PHP имеет знак $ перед переменными? Запрос данных PAT для множественной формы PHP? Как создать PDO-параметризованный запрос с помощью инструкции LIKE? Как отсортировать массив массивов в php? CakePHP TwigView Plugin отсутствует ошибка просмотра Как создать многоуровневое меню навигации с помощью базы данных с помощью Laravel Проблема с чтением файлов размером более 1 ГБ с помощью XMLReader Как реализовать сервисный уровень в Zend Framework? CakePHP: как использовать миграцию для вставки записей сессия никогда не должна истекать сама по себе Безопасные возможности загрузки изображений пользователей в PHP mysql соответствует ~ примеру Laravel Создание динамических маршрутов для контроллеров из базы данных Mysql сохранить формат ввода textarea после использования mysql_real_escape_string для хранения Почему мой массив SESSION OK на одной странице, но пустой на другой?

Как безопасно подключаться к веб-сайту api с сайта AngularJS

Будучи относительно новым для веб-разработки, по крайней мере, используя технологии на стороне клиента, такие как инфраструктура AngularJS, мне нужно решить несколько запросов, прежде чем я смогу запустить свой последний проект.

Я пишу приложение, используя AngularJS, который считывает / записывает / обновляет данные в базе данных. Поскольку javascript является клиентской стороной, я решил написать PHP REST API для выполнения запросов к базе данных, что приведет к безопасному имени пользователя и паролю и одному слою базы данных.

Мой вопрос заключается в том, что, учитывая мой REST API, я буду использовать AJAX из javascript (на стороне клиента) для вызова методов. Как заставить другие сайты писать сценарий для вызова API REST? Помещение маркера аутентификации в код javascript не очень безопасно, кто-то может его просто скопировать.

Является ли REST API лучшим подходом к этой проблеме? Я не склонен к изучению новых технологий или практик, поэтому, пожалуйста, все мысли о лучших шаблонах проектирования или методах внедрения очень приветствуются. К сожалению, из-за моих ограниченных знаний о доменах в этой области я был бесплоден в своих Поисках Google, так как не уверен в том, какие условия я должен искать.

Большое спасибо.

Solutions Collecting From Web of "Как безопасно подключаться к веб-сайту api с сайта AngularJS"

Поскольку ваше приложение Angular работает в браузере, ваш REST API должен быть общедоступным из браузера любого случайного посетителя. Таким образом, у вас есть публичный API, по необходимости. Вы не можете его ограничить; либо посетители могут видеть данные, либо они не могут.

По сути, это не сильно отличается от традиционной веб-страницы. На странице, созданной на стороне сервера, вы выводите свои данные, упакованные как HTML, и доставляете их всем, кто спрашивает. В приложении REST-API / Angular вы доставляете данные, упакованные как JSON, всем, кто спрашивает. В любом случае данные одинаково общедоступны, хотя, возможно, REST API немного легче «злоупотреблять», чем очищать HTML. Может быть полезно преднамеренно использовать некоторые отслеживания поведения пользователя и дросселирование, если вы хотите, чтобы кто-то просто не сосал всю вашу базу данных сухим; это в равной степени относится к API-интерфейсам REST на основе JSON, как и к обычным веб-страницам.

Если вы также открываете API чтения / записи таким образом, вы, конечно, широко открыты для злоупотреблений.

Единственный способ сделать API непубличным – это потребовать аутентификации по паролю. Если пользователи вашего сайта должны войти в систему, вы можете ограничить API всем, у кого есть действительный сеанс. Это не очень помогает в схеме грантов, если кто-то может просто зарегистрировать учетную запись на вашем сайте, но ей нужно больше обдумывать и обеспечивает немного большую управляемость, чем полностью открытый API.

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