Защита ключа API в веб-расширении

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

В настоящее время у меня есть 2 идеи, которые позволили бы мне сделать такую ​​вещь:

  1. Введите ключ API в открытый текст в веб-расширение и надейтесь, что люди будут достаточно хороши, чтобы не украсть его, используя CRX Viewer (маловероятно).

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

Я поклонник Node.js и хотел бы заняться номером 2. Как я могу обеспечить защиту my API в Node.js, чтобы люди не могли просто перенаправить свои запросы через мой сервер к API вместо прямого доступа к API с украденным ключом?

3 голоса | спросил Jay Gould 6 MarpmTue, 06 Mar 2018 23:22:49 +03002018-03-06T23:22:49+03:0011 2018, 23:22:49

2 ответа


1

Если вам нужно ограничить использование вашего ключа, вам необходимо ограничить использование вашего прокси.

Типичный способ регистрации пользователей (передача некоторых капчей для предотвращения наивных роботов от массовой регистрации) и выдача токена на пользователя. Сервер обслуживает только предъявителя действительного токена. Вы можете использовать дросселирование на токен или даже отменить и запретить пропущенные и злоупотребляемые токены.

Это делает сборку сложнее, а принятие ниже.

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

ответил 9000 6 AMpFri, 06 Apr 2018 04:38:38 +030038Friday 2018, 04:38:38
0

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

ответил JimmyJames 6 MarpmTue, 06 Mar 2018 23:46:13 +03002018-03-06T23:46:13+03:0011 2018, 23:46:13

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132