2015-01-20 3 views
1

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

Но я был на веб-сайтах, когда я пытаюсь сделать то же самое, есть мера безопасности, в результате чего на новой вкладке открывается сообщение «Несанкционированное», а не данные.

Это не может быть событие сеанса, потому что я был зарегистрирован правильно. Я думаю, что он определяется WHAT вызывает файл API.

Кто-нибудь знает, как копировать это в моем приложении javascript/angularjs ExpressJs?

{ 
    username: "James Doe", 
    picture: "styles/person.png", 
    activity: 12 
} 

enter image description here

Вот пример из GTDNext.com

enter image description here

+0

И у вас есть пример API, который это делает? Я не думаю, что я видел API, где URL-адреса не могут быть открыты непосредственно в браузере, если отправляются правильные заголовки. – adeneo

+0

Обновить страницу и видеть выше –

+0

Вы проверили, есть ли специальные заголовки, установленные для этих запросов ? – mvuajua

ответ

0

ОК, я нашел ответ на этот вопрос, и я хотел бы поделиться им с другими, потому что я подумайте, что полезно добавить уровень безопасности на стороне клиента, когда дело доходит до XHR-данных.

Имейте в виду, что я использую угловой.

В моем app.config я создал 3 пользовательских $ httpProvider поставщиков:

$httpProvider.defaults.headers.put['X-Posted-By'] = 'mySecretApp' 
    $httpProvider.defaults.headers.post['X-Posted-By'] = 'mySecretApp' 
    $httpProvider.defaults.headers.common['X-Requested-By'] = 'mySecretApp' 

В мой контроллер узла, который отвечает на апи вызов GET, у меня есть это:

.... 
module.exports = { 
    all: function (req, res) { 
    if (req.header('x-requested-by') != "mySecretApp") { 
     return res.status(400).send({ 
      message: errMsg.Util_ErrorMsg.getErrorMessage('Invalid requester') 
     }); 
    }; 

сейчас , если я правильно получаю данные, через браузер получаю данные. Однако, если я попытаюсь открыть api прямо из браузера, никаких данных не появится. Шифрование данных далее сделало бы его полностью нечитаемым из инструментов разработчика -> Сеть -> XHR

+0

С кем вы пытаетесь его защитить? Изменен ли ваш секретный ключ? Поскольку было бы тривиально открывать вашу страницу, вырывать через JavaScript и находить свой секретный ключ, а затем выдавать запрос с необходимыми заголовками. При необходимости можно даже автоматизировать его. – mdickin

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