javascript Archive

淘宝UA生成文件actionlog_js_ua.js学习笔记总结

近期认真的学习了淘宝用于生成UA的actionlog_js_ua.js文件,也逐一记录自己学习过程中的对淘宝UA一些认知,到今天算基本告一段落。因为边学习边记录,前面一些文章中可能会有一些疏漏,因此本文做一个汇总,记录一些自认为比较重要的学习心得和一些学习过程中的疑问。

ua.js 获取访客浏览器与操作系统信息的方式

淘宝的ua.js在load事件处理函数中,使用正则表达式和navigator["userAgent"]和navigator["platform"] 来获取访客的浏览器和操作系统信息,也会获取访客屏幕分辨率和浏览器窗口尺寸,用这些信息来更新UA。

ua.js中arguments.callee.caller的应用

在ua.js文件中,用到arguments.callee和arguments.callee.caller的函数名为su。据我的理解,这个函数的作用是:在每一次UA更新时,获取当前更新UA的函数名,按照函数执行次序依次将函数名存储在变量uv5中。

ua.js中JSocket.getlso和JSocket.setlso代码分析

搜索关键词JSocket.getlso或JSocket.setlso,会发现乌云上几个与"淘宝网存储xss"相关的漏洞,有一部分漏洞与ua.js中的JSocket相关。虽然以我目前的知识暂时还不能理解漏洞形成的原理,但是我可以先将相关漏洞与JSocket相关的代码字面意思记录下来。

ua.js中用 image 对象实现页面访问统计

据说目前用image对象实现页面访问统计是比较最常用的一个方法,将如下类似的JavaScript脚本放在网页里:new Image().src = "http://xxx.com/log?msg="+ msg; 这种统计方法基本上不会干扰用户的正常操作。而大淘宝的ua.js文件中就包含了类似的代码,我们一起来围观一下。

ua.js中网络超时检测函数 wql 功能分析

wql是ua.js中网络超时检测函数。​在load事件自定义处理函数中获取各种固定信息生成UA时,每一次调用vq4,随即都会调用wql,wql的唯一参数与vq4的第一个参数相同​,今天我们来分析该网络超时检测函数wql实现的原理。

ua.js中UA生成函数vq4的“庐山真面目”

前面几篇文章主要介绍了参与生成UA的信息与事件类型,有关注此系列文章的同学们会发现每一种信息或事件处理处理完成后,都会将资料作为参数传递给函数vq4并调用vq4。没错,vq4就是ua.js中生成UA的函数,本文分析该函数生成UA的原理。

ua.js文件focus&blur&keydown事件分析

上一篇文章介绍了mousedown和mousemove事件更新UA的方式,今天讲述ua.js文件focus&blur&keydown事件发生时用于更新UA的信息。其中focus/blur是同一个函数处理的,函数名为yl,而处理keydown事件的函数名为u4。

ua.js中mousedown和mousemove事件自定义函数功能解析

现在我们已经知道网页DOM加载完成后,ua.js会在load事件处理函数中获取用户的浏览器,操作系统等等信息用于生成UA。DOM加载完成后,这些信息在UA中的数据格式已固定,不会再更新(页面重载时这些信息会更新)。而鼠标和键盘事件则会实时更新UA,本文先解析mousedown和mousemove的事件处理方式。

ua.js文件load事件自定义处理函数功能解析

经过前两篇文章的分析可知,ua.js首先会检测DOM加载完成并执行指定函数,该功能靠函数jwhs实现,不依赖Jquery。那ua.js文件在DOM加载完成后要做的第一件事是什么呢?这就是本文讨论的主题:执行load事件自定义处理函数。
Fork me on GitHub