admin 管理员组文章数量: 1184232
小编推荐: 提供JS、微信小程序、微信小游戏,Node.js和Java错误监控。真的是一个很好用的错误监控服务,众多大佬公司都在使用。
一些用户向我们反馈, 的 监控插件抓到了很多 Script error. ,然后行号和列号都是0…这就很尴尬了。
今天,我们来详细地解析一下
Script error.
,后续我们还会深度测试并且提供解决方法。
同源策略 (Same origin policy)
解释
Script error.
之前,我们先简单聊聊同源策略。摘自
:
Two pages have the same origin if the protocol, port (if one is specified), and host are the same for both pages.
所谓同源,就是指两个页面具有相同的协议、端口和主机(域名)。通过第三方加载的JavaScript脚本是不同源的。下面的表格简单列出了和
是否同源的文件:
| 网址 | 是否同源 | 原因 |
|---|---|---|
| 是 | |
| 否 | 协议不同 |
| 否 | 端口不同 |
| 否 | 子域名不同 |
| 否 | 域名不同 |
没有同源策略的话,将会怎样?摘自 :
假设你已经成功登录Gmail服务器,同时在同一个浏览器访问恶意站点(另一个浏览器选项卡)。没有同源策略,攻击者可以通过JavaScript获取你的邮件以及其他敏感信息,比如说阅读你的私密邮件,发送虚假邮件,看你的聊天记录等等。 如果将Gmail替换为你的银行帐户,问题就大条了。
为啥出现Script error. ?
为了提升网站的访问速度,我们通常都会将静态资源文件(css, image, javascript)放在第三方CDN。当这些从第三方加载的JavaScript脚本执行出错,因为违背了
同源策略
, 为了保证用户信息不被泄露,错误信息不会显示出来,取而代之只会返回一个
Script error.
。
暴露错误信息会怎样呢?摘自( ):
假想你不小心访问了一个恶意网站,网页里面偷偷放入了一段JavaScript脚本
<script src="cbcc.com/index.html">,这段脚本指向你使用的某银行网站首页。虽然脚本会执行失败,但是错误信息却有可能泄露你的信息。如果你已经登录过该银行网站并且处于登录状态,那么错误信息可能为'欢迎你 ....' is undefined;如果你没有登录,那么错误信息可能是'请登录...' is undefined。 然后黑客就可以根据这些信息确定你使用的银行网站,并且伪造一个钓鱼网站来骗取钱财。
源码
如下:
bool ScriptExecutionContext::dispatchErrorEvent(const String& errorMessage,
int lineNumber,
const String& sourceURL)
{
EventTarget* target = errorEventTarget();
if (!tar版权声明:本文标题:深入探讨HTML中的Script Error:以Flash为中心的相对URL onerror为何失灵? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1771343367a3543526.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论