Безопасность клиентского API

Я внедрял чат Оларк на своем веб-сайте, и все, что мне нужно было сделать, это реализовать следующий код js.

  <script type = "text/javascript" async>
      ;(function(o,l,a,r,k,y){if (o.olark)return;
      r = "script";y=l.createElement(r);r=l.getElementsByTagName(r)[0];
      y.async=1;y.src = "//"+a;r.parentNode.insertBefore(y,r);
      y=o.olark=function(){k.s.push(arguments);k.t.push(+new Date)};
      y.extend=function(i,j){y("extend",i,j)};
      y.identify=function(i){y("identify",k.i=i)};
      y.configure=function(i,j){y("configure",i,j);k.c[i]=j};
      k=y._ = {s:[],t:[+new Date],c:{},l:a};
      })(window,document,"static.olark.com/jsclient/loader.js");

      /* Add configuration calls below this comment */
      olark.identify('XXXX-XXX-XX-XXXX');
  </script>

Мне интересно, какая техника использует Плагин стороннего JavaScript, например Оларк, Disqus и подобные компании?

Как видите, olark.identify () общедоступен на моей веб-странице, и вы можете найти его с помощью «проверить элемент». Итак, как они справляются с безопасностью и отклоняют нежелательные запросы?

  olark.identify('XXXX-XXX-XX-XXXX');

Нет, я просто копирую следующий код на свой сайт.

Sven 04.12.2018 14:01
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
63
1

Ответы 1

Это довольно широкий вопрос, но я попытаюсь ответить:

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

Я не думаю, что это худшее, потому что: в чем проблема с комментариями, которые появляются где-то еще? С самого начала это была уже публичная информация.

Сценарии, которые должны точно указать, в какой домен они встроены, как правило, используют CORS и заголовок Origin, чтобы убедиться в этом. В качестве альтернативы они могут использовать информацию из document.location.

Это не «жесткая» безопасность в том смысле, что она полностью исключает неправильное использование, но она использует «песочницу» браузера, чтобы усложнить злоупотребление.

Спасибо за ответ, Эверт! Вы можете предложить мне прочитать какой-нибудь контент? Я до сих пор не понимаю, как Olark может использовать только JS-клиент? Это безопасно? Можете ли вы указать мне правильный путь? Спасибо

Sven 05.12.2018 22:12

Я думаю, что сложно ответить, потому что это зависит от вашего определения безопасности. Все могут видеть ваш «код», но, как вы думаете, какой вред они могут нанести?

Evert 05.12.2018 22:14

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

Sven 05.12.2018 22:28

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

Evert 05.12.2018 22:44

Другие вопросы по теме