Twitter涨播放量网站 --Twitter刷播放量
原副标题:怎样根除Script Error?
责任编辑概要如是说了 Error 难题的原委,但也不限于 Error,对通用型的整体性难题,如果找出整体性软件系统,从而治标治标。
Error 其原因与现阶段数学分析
受应用程序相混思路管制,未明布吕马JAVA继续执行严重错误时,放出的原始数据为 " error.",引致开发人员难以功能定位具体内容严重错误。为的是以获取详尽原始数据及栈,通常数学分析是给 条码实用性 crossorigin 特性,与此同时相关联JAVA服务器端需实用性Access-Control-Allow-Origin 积极响应头。
除此之外除了许多 hack 数学分析,相关联用程序原生植物 API 做全权,将销售业务标识符放到 Try Catch 返回值中继续执行,但写好全权方式是不难的,低品质的全权方式会锻造许多暗藏 Bug,因此大批 Try Catch 在许多 JS Engine 中也存有附加操控性耗损,为的是化解 Error 选用此计划反过来。
除了甚么难题
crossorigin不太好加
crossorigin加不了
无效 Error 数据,难以评估对销售业务实际影响,因此耗费监控资源
异步加载JAVA套娃,A 加载 B,B 加载 C,以至于不知道加载了哪些外部JAVA
需要服务器端配合设置积极响应头 Access-Control-Allow-Origin
外部注入标识符,如应用程序插件、定制 Webview 容器(xx 应用程序)
溯源:为甚么是 Error
从 2006 年一篇安全漏洞文章说起:I know if youre logged-in, anywhere
在那个年代大批中文网站都是服务器端渲染,服务器端根据用户登录态返回不同页面内容,黑客通过 加载目标站点,用户已登录、未登录返回的 Response 内容不同,报错信息也会有差异,这样就可以通过报错信息区分用户是否登录,进一步展开针对性的攻击。
< src= http://mail.google.com/mail/>
已登录:
未登录:
对其他站点也是类似,原始数据中总会有差异,比如亚马逊登录和未登录,报错的 LineNo 不同。
基于此,WHATWG 对原始数据透出制定了规范:
Chrome 实现:
《I know if youre logged-in, anywhere》地址:https://blog.jeremiahgrossman.com/2006/12/i-know-if-youre-logged-in-anywhere.html
Error 规范是否能调整
通过以上信息,我们可以理解 Error 的设计初衷以及其合理性,但我也有疑问,在今天应用程序相混思路比较完善的情况下,是否有必要屏蔽所有信息(error message、lineno、colno、url)?能否将发生 Error 的JAVA url 暴露出来,以便开发人员收集到原始数据时快速功能定位严重错误,这样也方便评估影响面,比如明显是注入的JAVA严重错误,直接忽略即可。
翻阅 WHATWG Github 历史 issue,发现已经有过相关讨论,很明确答案是 No,大概其原因是现阶段的相混思路已经很全面(复杂),不想在挖坑。以至于对 unhanlderejection,连 Error 都不愿意报。
相关讨论地址:https://github.com/whatwg/html/issues/2440
unhanlderejection地址:https://github.com/whatwg/html/issues/5051
其他大厂怎样处理 Error
我在几个大厂中文网站上做了测试,加载一个第三方JAVA,第三方JAVA一定会报错,看看相关联站点怎样处理。
- Google:常规处理,直接上报 Error
- Twitter: 通过 CSP 思路拦截了未明JAVA加载,包括 Github、FaceBook 都选用类似计划
- QQ 视频:除了上报 Error,并监控上报异步加载的JAVA
面向未来我们如果怎样处理 Error
面向未来看难题,我们不能与标准背道而驰,相混思路是现阶段化解 Web 安全难题的重要手段,在未来只会更完善,我们如果积极了解与应用。现阶段国内互联网对相混思路的了解与应用大多止步于Access-Control-Allow-Origin:*,这是远远不够的。
因此,面向未来 Error 难题 Twitter 的处理方式相对合理,只允许站点加载白名单JAVA,对白名单JAVA逐个做 CrossOring 等实用性,与此同时也杜绝了外部JAVA注入。对淘宝来说,受限于销售业务体量以及历史包袱,做这种改造难度可想而知,但我们如果朝这个方向努力,而不是让开发人员面对 Error 手足无措,靠猜测或是加严重错误过滤化解难题。
回到当下,短期的软件系统要增强布吕马JAVA的感知能力,可以实用性 CSP Report Only 上报布吕马JAVA,也可以通过原始手段统计,从而对相关JAVA做布吕马实用性,对明显的布吕马JAVA如埋点、唤端、以及安全系列JAVA,缺少 crossorigin 的尽快修复。
CSP Report Only地址:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
责任编辑概要如是说了 Error 难题的原委,但也不限于 Error,对通用型的整体性难题,如果找出整体性软件系统,从而治标治标。
参考文档
- what is error (地址:https://blog.sentry.io/2016/05/17/what-is--error)
- iOS Privacy: Instagram and Facebook can track anything you do on any website in their in-app browser (地址:https://krausefx.com/blog/ios-privacy-instagram-and-facebook-can-track-anything-you-do-on-any-website-in-their-in-app-browser)
- I know if youre logged-in, anywhere (地址:https://blog.jeremiahgrossman.com/2006/12/i-know-if-youre-logged-in-anywhere.html)
- HTML Spec: Runtime errors (地址:https://html.spec.whatwg.org/multipage/webappapis.htmlruntime--errors)
- " error." message in window. makes bad DevExp trade off (地址:https://github.com/whatwg/html/issues/2440)
- unhandledrejection should fire even for muted s (地址:https://github.com/whatwg/html/issues/5051)
Content-Security-Policy-Report-Only(地址:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only)
END
这里有最新开源资讯、软件更新、技术干货等内容
点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦~返回搜狐,查看更多
责任编辑: