Я внедрял чат Оларк на своем веб-сайте, и все, что мне нужно было сделать, это реализовать следующий код 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');



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это довольно широкий вопрос, но я попытаюсь ответить:
Многие из этих инструментов на самом деле не блокируют нежелательные запросы. Например, можно встроить блок комментариев disqus на совершенно не связанный с ним веб-сайт.
Я не думаю, что это худшее, потому что: в чем проблема с комментариями, которые появляются где-то еще? С самого начала это была уже публичная информация.
Сценарии, которые должны точно указать, в какой домен они встроены, как правило, используют CORS и заголовок Origin, чтобы убедиться в этом. В качестве альтернативы они могут использовать информацию из document.location.
Это не «жесткая» безопасность в том смысле, что она полностью исключает неправильное использование, но она использует «песочницу» браузера, чтобы усложнить злоупотребление.
Спасибо за ответ, Эверт! Вы можете предложить мне прочитать какой-нибудь контент? Я до сих пор не понимаю, как Olark может использовать только JS-клиент? Это безопасно? Можете ли вы указать мне правильный путь? Спасибо
Я думаю, что сложно ответить, потому что это зависит от вашего определения безопасности. Все могут видеть ваш «код», но, как вы думаете, какой вред они могут нанести?
Допустим, я создаю виджет JS, который связывается с моим API и подсчитывает каждый запрос, сделанный этим виджетом. Если кто-то украл этот код с веб-сайта виджетов, внедрил его на свой веб-сайт и начал делать те же запросы, мой счет будет неправильным и небезопасным. Что лучше всего делать с подобными вещами? @Evert
Если виджет JS использует CORS, он всегда будет включать заголовок Origin, содержащий имя домена, в которое он был встроен, но люди по-прежнему могут проксировать ваш API и обходить его. Не существует идеального способа предотвратить это, и лучше просто не пытаться предотвратить это.
Нет, я просто копирую следующий код на свой сайт.