在图像中嵌入分析代码以在显示图像时触发

Posted

技术标签:

【中文标题】在图像中嵌入分析代码以在显示图像时触发【英文标题】:Embed analytics code within image to be triggered when image is displayed 【发布时间】:2015-08-18 12:01:42 【问题描述】:

是否可以在图像中打包分析代码并在图像加载到网页时触发该代码?

图像将通过文件上传表单字段插入到页面中,例如,如果我要在这个问题中添加图像,而我无法直接访问将 html 或 JS 添加到页面。

目标是跟踪我无法访问任何代码的页面上的页面浏览量,只有上传图片的能力。

几乎有点像“特洛伊木马”方法,但没有任何恶意。

【问题讨论】:

参考File Uploader Vulnerabilities和Exploit Delivery via Steganography and Polyglots和javascript-Pics polyglots 我可能是错的,但我非常怀疑这是可能的。该方法需要将代码(无论意图是什么)注入到其他人的代码中,以根据加载事件执行。这正是为什么有跟踪像素通过附加参数的图像执行此类工作的原因,但由于您无法控制渲染图像或其 URL,因此它将无法工作。即使您能够附加图像 url 来发布参数,它也与在页面上执行 JS 代码不同。非常有限。 每一个在Linkedin上查看个人资料图片的跟踪者都可能被抓到。 【参考方案1】:

跟踪像素需要特定的结构和特定的服务器。

所以我无法想象特洛伊木马之类的东西,但您可以将图像加载作为一个事件进行跟踪。

试试这样的:

单一用途客户端

<img src=""  id="fblogo"/>

<script type="text/javascript">
    window.onload = function () 
        var logo = document.getElementById('fblogo');
        logo.onload = function () 
            ga('send', 'event', 'FB', 'Loaded');      
        ; 
        logo.src = 'https://facebook.com/fb/logo.png';
    ;
</script>

测量协议方式-服务器端

https://www.google-analytics.com/collect

?v=1                                    // Protokol version
&tid=UA-XXXX-Y                          // Property ID
&cid=55568765456                        // Client ID stored in database or random number 

&dh=forum.eu                            // referrer
&dp=image78974.png                      // filename

&t=event                                // send instruction

&ni=1                                   // non inteaction flag
&ec=Image                               // Event Category
&ea=Load                                // Event Action
&el=image78974.png                      // Event Label

【讨论】:

嗯不是我需要的。我希望将它附加到真实图像上,因此当我将它们嵌入论坛时,其他用户查看该图像时,他们也会从谷歌或 Facebook 获得一个跟踪 cookie,用于再营销。 那么当需要图像时,您必须在服务器端使用测量协议。每个包含的图像都应该由 php 或其他任何东西进行预处理,并且在返回图像数据之前,发送带有分析数据的 cURL。

以上是关于在图像中嵌入分析代码以在显示图像时触发的主要内容,如果未能解决你的问题,请参考以下文章

如何重新加载UIPageViewController以在Swift中重新加载其视图

尝试通过 JSON 解析以在应用程序中显示图像

从 JSON 写入/读取图像以在 Xcode 中使用

如何在 JSON 中循环数组 imageURL 以在图像视图中显示

如何为多个图像创建随机数以在 Grid 中随机显示而不在 iOS 中重复?

vba 电子邮件嵌入图像未显示