2015-05-19 2 views
0

Я ищу лучший способ защитить свои приложения login api от третьих сторон, пытающихся его захватить. Я использую Apigility, ZF2, JQuery.Как защитить локальный URL API при использовании javascript

У меня есть игровой сервер (сервер G) и сервер облаков (сервер C).

В то время как сервер C - держит имена пользователей и пароли, пользователи подписываются и входа в систему через сервер G.

Оба сервера C и G имеют используя ApiGility своего собственного API.

Когда пользователь регистрируется на сервере G, приложение jquery вызывает свой собственный API, который, в свою очередь, использует Oauth2 для обращения к серверу C для проверки введенных учетных данных. Таким образом, каждая игра в моей сети имеет одно соединение Toker Toker с моим облаком, и каждая игра обрабатывает свои собственные подключения к своим клиентам (мобильный/браузер/рабочий стол и т. Д.). Сохраняет чистоту.

В то время как сервер G-C защищен, как мне защитить вызов javascript от его собственного API?

enter image description here

Javascript предоставляет локальный вызов API приложений, которые по существу означает, что любой человек может захватить URL и играть с ним :)

var url ='http://server-g.example.com/api/login/' + email + '/' + password; 

$.ajax({ 
    type: 'GET', 
    async: true, 
    url: url, 
    dataType: "json", 
    success: function(responseObject){ 
     if (responseObject.status) 
     { 
      //Do stuff  
     } else { 
      //Do other stuff 
     } 
    } 
}); 

Я планирую использовать неявную субсидию, однако, Я не уверен, как это будет работать с моей собственной api?

Каким будет стандартное решение?

ответ

2

Вы должны никогда не отправляйте пароль и электронную почту по указанному здесь адресу.

Интересно, какая документация от Apigility, которую вы использовали для настройки этой аутентификации.

Необходимо отправить имя пользователя и пароль в запросе POST и правильно установить соединение https. Переданные данные будут зашифрованы сертификатом и, как это, вы предотвратите чтение данных при перехвате.

Подробнее о том, как использовать OAuth в Apigility here особенно:

публичных клиентов

пример показывает:

POST /oauth HTTP/1.1 
Accept: application/json 
Content-Type: application/json 

{ 
    "grant_type": "password", 
    "username": "testuser", 
    "password": "testpass", 
    "client_id": "testclient2" 
} 
+0

HTTP Basic Auth – Alex

+0

@Alex, вы можете быть более конкретный. Также есть [документы о том, как использовать http basic в Apigility] (https://apigility.org/documentation/auth/authentication-http-basic). Это определенно не сделано, как в вышеупомянутом вопросе. – Wilt

+0

Спасибо, Улыбка, это решает мою проблему. Я не думал о том, чтобы использовать GET для проверки и POST для обновления. – HappyCoder

 Смежные вопросы

  • Нет связанных вопросов^_^