2013-06-28 2 views
0

Как разрешить только мое приложение использовать мой REST API?Частный API REST с вызовом Ajax

У меня есть этот код в Javascript

$.ajax({ 
       type: 'DELETE', 
       url : 'removeTest', 
       data: { ... }, 
       beforeSend:function(){ 
        ... 
       }, 
       complete:function(){ 
        ... 
       }, 
       success:function(data, textStatus, jqXHR){ 
        ... 
       } 
      }); 

Этот вызов удаляет пользователя из базы данных с REST API в PHP. Проблема в том, что каждый может удалить пользователя с помощью POSTMAN (плагин Chrome). Как я могу защитить свой REST API для авторизации только моего приложения.

Недостаточно проверить HTTP_REFERER. Что может быть лучше?

Спасибо за вашу помощь

ответ

0

У вас есть несколько возможностей здесь. В общем, вы можете авторизовать пользователя, приложение или и то, и другое. Это зависит от ваших требований приложения.

AUTHENTICATE Приложение

аутентифицировать приложение, которое вы могли бы использовать систему с маркеров на основе, такие как API-ключ. Это означает, что любой запрос будет подписан с использованием дополнительных параметров запроса. Посмотрите на the way amazon does this в своей службе S3, например. Если ваше приложение будет единственным, которое будет обращаться к остальному API, вы можете просто ограничить доступ с помощью IP-адреса.

Если с вашим клиентом будет работать несколько пользователей, вам также может потребоваться авторизация доступа к определенным функциям. Например: сможет ли каждый пользователь удалять любой ресурс? Если ответ нет, вы должны реализовать

аутентификации и авторизации пользователей

Простой способ аутентификации пользователей в успокоительной API использует HTTP Basic или Digest Auth. В этом параметре учетные данные пользователя отправляются через заголовок авторизации в форме имени пользователя: пароль как хэш-код Base64, кодированный сервером. Обратите внимание, что вы должны делать это только через защищенное соединение с помощью HTTPS!

Кроме того, вы также можете взглянуть на более сложные/сложные методы, такие как OAuth.