javascript - 客户端 API 安全性
问题描述
我在我的网站上实现了 Olark实时聊天,我所要做的就是实现以下 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 插件,如Olark、Disqus和类似公司?
如您所见, olark.identify()在我的网页上是公开的,您可以通过“检查元素”找到它。那么他们如何处理安全性并退回不需要的请求呢?
olark.identify('XXXX-XXX-XX-XXXX');
解决方案
这是一个相当广泛的问题,但我会尝试回答:
许多这些工具并没有真正阻止不需要的请求。例如,可以在完全不相关的网站上嵌入 disqus 评论块。
我不认为这是最糟糕的事情,因为:评论出现在其他地方有什么问题?一开始就已经是公开信息了。
需要准确防止它们嵌入哪个域的脚本倾向于使用 CORS 和Origin
标头来确保这一点。或者,他们可以使用来自 的信息document.location
。
从某种意义上说,这不是“硬”安全性,它完全禁止滥用,但它使用浏览器沙箱使其更难被滥用。
推荐阅读
- javascript - 我无法通过对象中的键获取值
- java - java - 如何在java中对ExecutorService中的类似线程求和?
- react-native - 有没有将 StrictMode 与 React-Native 一起使用的示例?
- nginx - Nginx:从反向代理的应用程序重写 url 中的端口
- html - 如何使两个部分在 SVG 中看起来像一个部分?
- python - 从 API 将数据写入数据帧时失败
- php - 将输出格式化为逗号分隔列表而不是嵌套数组
- azure - 无法连接到我的远程应用程序,只有具有相同 IP 的远程桌面
- apache-spark - 如何在 Kubeedge 上部署 Spark?
- javascript - 浏览器 - 删除类后保持颜色