@jakuraji

Как скрыть Api Key при ajax запросе?

Есть страница из которой по ajax'у дергается какой-то метод. Как скрыть из страницы Api Key, который требует этот метод?

Скрыть правильным способом. То есть, как-то спрятать его в странице в надежде что человек его не заметит, или в отдельном js файле, который подключается к странице - не подойдет.
  • Вопрос задан
  • 1737 просмотров
Решения вопроса 1
Exploding
@Exploding
wtf?
Никак. Если страница требует передачи ключа, то элементарно в том же DevTools -> Network он будет отображаться в параметрах запроса, где бы Вы его не подключали и как бы не скрывали в коде.
По-этому, я так думаю, что наверно "прокладка" на php с cURL-ом будет одним из вариантов решения проблемы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@nickerlan
Если это стороннее API, с которого надо вытащить данные - сделать прослойку на бекэнде (на NodeJS или PHP), которая цепляет находясь на Вашем сервере и зная ключ, все что надо, а потом уже отдает клиенту.

Если это свое API, то ключ стоит воспринимать как логин-пароль этого конкретного пользователя, а потому скрывать его от него же смысла никакого нет.

PHP - простой вариант для прослойки.
Но у вопроса тег JS, на JS тоже можно, и если не хотите возиться с серверами для этого, можете попробовать now.sh, есть бесплатная версия https://zeit.co/examples/nodejs/

1. Установите now
2. Создадите простой код вроде этого:
const {send} = require('micro')
const axios = require('axios')

module.exports = async (req, res) => {
  var result = await axios.post(API_LINK,{token:SECRETTOKEN}).then(d=>d.data))
  send(res,200,result);
};

Рядом файл now.json
{
    "version": 2,
    "name": "nodejs",
    "builds": [
        { "src": "*.js", "use": "@now/node" }
    ]
}

А потом в консоли из той же папки:
npm init -y && npm install axios micro --save && now

Ссылка на скрипт появится в буфере обмена
Ответ написан
@darknefrit
А Зачем его скрывать? Ключ скорей всего публичный и привязан к вашему домену
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы