RTB技术总结--------神秘的iframe

在某个神秘的代码技术研究,被老板骂得狗血两天。

老板说,你要纵观全局,应该对RTB的思路是提出问题想法,比解决一个技术难点更加重要。

我只回了一句,没有强大的技术支持,你的破思想都是浮云。

起初这个什么iframe好奇,来自于tanx的动态广告投放!

对于这个神秘的iframe研究,昨天才有了结果,已经研究了一个月之久。我以为神奇的oschina会有结果,结果,没有结果的结果。还是我自己来填补这个空缺。

这RTB的研究博客将持续写下去,都是一些特别的js,特别的用法。至少对于一个我这个java程序员来说。跑去研究javascript的核心,深深的对于、其他dsp、dmp、adx 的js代码感到神奇。

一个月前的提问

http://www.oschina.net/question/1037462_231599

这个我经过大量的测试,大量的js去实现

用到了纯js去创建document标签

var content = document.createElement("div");
			content.style.cssText="display:inline-block;position:relative;width:"+vlion_main.vlion_width+"px;height:"+vlion_main.vlion_high+"px;*display:inline;*zoom:1;";
			content.setAttribute("id","didi");
			content.innerHTML=data.src;
			var img= document.createElement("img");
			img.style.cssText="width:1px;height:1px;display:none;";
			img.src=data.pm;
			content.appendChild(img);

或者用

var div="<div id=\"vlion_image_div\" style=\"height:"+vlion_main.vlion_high+"px; width:"+vlion_main.vlion_width+"px; overflow:hidden; position:absolute\">" +
			"<a id=\"aw0\" target=\"_blank\" href=\""+data.cm+"\" border=\"0\"  class=\"img_ad\" onload=\"f\">" +
				"<img src=\""+data.src+"\" border=\"0\" width=\"100%\" height=\"100%\" class=\"img_ad\" >" +
			"</a>" +
			"</div>"+
			"<img src=\""+data.pm+"\" style=\"display: none;\">";

这样的方式去上面链接里面的提问的去解决这个没有src 的神秘iframe。或者说去把iframe这个标签怎么实现的,去研究了编。。最终无果。。

但是昨天研究品友dsp代码有了结果。。

当然任何RTB的js都是混淆代码。对于一个java程序员来说,看这些混淆是多么的蛋碎。功夫不负有心人!

我截取品友的核心实现代码。然后自己重写了一下,来重现这个问题

var r="setTimeout(function() {
var f=document;e = f.createElement(‘iframe‘);
e.src=‘http://cm.ipinyou.com/cma.html‘;
f.body.insertBefore(e,f.body.firstChild);
e.style.display=‘none‘;}, 5000)";

var i="http://stats.ipinyou.com/adv?a=Zs..XfPVEODYYsR1PBs506Sxg0&u=http%3A%2F%2Flocalhost%2Fqitadsp%2F1.html&pi=&p=&e=&rd=1431501551750";
var k=document;
var a = k.createElement("iframe");
 //a.src = "";
 a.style.display = "none";
  if (k.body) {
         k.body.insertBefore(a, k.body.firstChild);
         try {
        	 
			 c = a.contentWindow.document, c.write(‘<!doctype html><html><body ><script src="‘ + i + ‘"><\/script></body></html>‘), c.close()
        } catch (d) {
            a.contentWindow.location.replace(‘javascript:void((function(){document.write("<!doctype html><html><body onload=\\"‘ + r + "\\\"><script>document.domain=‘" + document.domain + "‘;var s=document.createElement(‘script‘);document.body.insertBefore(s,document.body.firstChild);s.src=‘" + i + "‘;<\/script></body></html>\");document.close()})());")
        }
    } else {
       // setTimeout(j, 50)
    }

我们来看一看效果的展示!

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>

</head>
<body>
<script type="text/javascript">
var r="setTimeout(function() {var f=document;e = f.createElement(‘iframe‘);e.src=‘http://cm.ipinyou.com/cma.html‘;f.body.insertBefore(e,f.body.firstChild);e.style.display=‘none‘;}, 5000)";
var i="http://stats.ipinyou.com/adv?a=Zs..XfPVEODYYsR1PBs506Sxg0&u=http%3A%2F%2Flocalhost%2Fqitadsp%2F1.html&pi=&p=&e=&rd=1431501551750";
var k=document;
var a = k.createElement("iframe");
 //a.src = "";
 a.style.display = "none";
  if (k.body) {
         k.body.insertBefore(a, k.body.firstChild);
         try {
        	 
			 c = a.contentWindow.document, c.write(‘<!doctype html><html><body ><script src="‘ + i + ‘"><\/script></body></html>‘), c.close()
        } catch (d) {
            a.contentWindow.location.replace(‘javascript:void((function(){document.write("<!doctype html><html><body onload=\\"‘ + r + "\\\"><script>document.domain=‘" + document.domain + "‘;var s=document.createElement(‘script‘);document.body.insertBefore(s,document.body.firstChild);s.src=‘" + i + "‘;<\/script></body></html>\");document.close()})());")
        }
    } else {
       // setTimeout(j, 50)
    }	

</script>
</body>
</html>

这样一个神奇的没有src的iframe就出来。。。。

很犀利很怪诞。。。一个没有src的iframe说出去,都没人信。但是事实他出来了。。。

好了这个研究了一个月的神奇现象就讲解到这儿

时间: 2024-11-25 21:45:27

RTB技术总结--------神秘的iframe的相关文章

快速探索,音视频技术不再神秘

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由goo发表于云+社区专栏 与生活紧密相连的音视频,为何有那么多格式?直播.点播以及即时视频其中又有怎样的机制支撑?面对纷繁复杂的音视频知识,应该如何学起?快速探索,音视频技术不再神秘. 前言 面对一门技术,我们熟悉而陌生,我们能够熟练的基于平台的API完成各种各样的需求,掌握平台特性.框架与原理.但随着技术点不断深入,却发现自己存在基础性与深度性的知识盲区. 局限于平台API开发,并不能使我们走的很远.突破技术成长必经的瓶颈期,关

零代价修复海量服务器的内核缺陷——UCloud内核热补丁技术揭秘

下述为UCloud资深工程师邱模炯在InfoQ架构师峰会上的演讲——<UCloud云平台的内核实践>中非常受关注的内核热补丁技术的一部分.给大家揭开了UCloud云平台内核技术的神秘面纱. 如何零代价修复海量服务器的Linux内核缺陷? 对于一个拥有成千上万台服务器的公司,Linux内核缺陷导致的死机屡见不鲜.让工程师们纠结的是,到底要不要通过给服务器升级内核来修复缺陷?升级意味者服务器重启.业务中断以及繁重的准备工作:不升级则担心服务器死机,同样造成业务中断和繁重的善后工作. 而在今天的云计

技术干货的选择性问题

转载自:http://blog.csdn.net/mindfloating/article/details/52016494 今天准备整理下微信的收藏夹,因为我发现好像在里面已经收藏了太多文章.这些收藏的文章并不是已经读过觉得不错故而收藏的,而是全没读过的.而其中的很大部份都是所谓的技术干货型文章,因为这类文章一方面比较长,另一方面比较费脑,所以我总是习惯在碰到的时候先收藏下来,再稍候找时间读之. 但没想到的是,现在供应这类技术干货型文章的作者或媒体或公众号越来越多,导致我总是收藏了却没一直没空

揭秘几种最主要的挂马技术

网页挂马是攻击者惯用的入侵手段,其影响极其恶劣.不仅让站点管理者蒙羞,而且殃及池鱼使站点的浏览者遭殃.不管是站点维护者还是个人用户,掌握.了解一定的网页挂马及其防御技术是非常必要的. 1.关于网页挂马 网页挂马就是攻击者通过在正常的页面中(通常是网站的主页)插入一段代码.浏览者在打开该页面的时候,这段代码被执行,然后下载并运行某木马的服务器端程序,进而控制浏览者的主机. 2.获取Webshell 攻击者要进行网页挂马,必须要获取对站点文件的修改权限,而获取该站点Webshell是最普遍的做法.

RTB实时竞价广告是未来趋势

原文:http://www.inboundjournals.com/rtb-real-time-bidding-the-future-of-online-advertising/ [资讯图表] RTB实时竞价广告是未来趋势 RTB (Real Time Bidding) 实时竞价,已经成为网路广告产业最新的代名词,它是网路广告圈不断发展下的必然产物,目前盛行于欧美国家,最近引进亚洲. 究竟什么是RTB?本资讯图表将作系统的说明. 阶段一 网路上一开始便存在两种角色:广告主与媒体(例如网站).广告

JS异步加载的几种方式

一:同步加载 我们平时使用的最多的一种方式. <script src="http://yourdomain.com/script.js"></script> <script src="http://yourdomain.com/script.js"></script> 同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止后续的解析,只有当当前加载完成,才能进行下一步操作.所以默认同步执行才是安全的.但这样如果js中有输

应用解决告诉你什么时候该用ajax

第一.请求的提交是为了页面数据的显示,这时候用户一般不希望看到页面的刷新,是使用AJAX的一个最佳时候. 第二.如果请求提交后,用户能从页面感觉到提交结果,这时候,也最好不要有页面刷新,推荐使用AJAX技术. 第三.如果请求提交后,用户不能从页面感觉到提交动作,如绝大多数时候的数据的增加和修改,这时候则需要页面刷新,不能使用AJAX技术.第四.复杂的UI,以前对于复杂的C/S模式的UI,B/S模式一向采取逃避的方法,现在则可以放心大胆的使用AJAX来加以解决. 常见问题解决:1. 第一.输入值校

Sql-Server应用程序的高级注入

本文作者:Chris Anley 翻译: luoluo [[email protected]] [目 录] [概要] [介绍] [通过错误信息获取信息] [更深入的访问] [xp_cmdshell] [xp_regread] [其他扩展存储] [联合服务器] [用户自定义扩展存储] [向表中导入文本文件] [利用BCP创建文本文件] [SQL-Server里的ActiveX 脚本] [存储过程] [高级Sql注入] [没有引号的字符串] [Sql-Injection二次注入] [长度限制] [躲

cocos android分析

cocos2d-x Android环境搭建 cocos2d-x环境搭建比较简单,但是小问题还是不少,我尽量都涵盖的全面一些. 下载软件 cygwin.NDK(ADT):C++相关 如果之前没有Android开发环境,还需要Android SDK,Eclipse cocos2d-x源码 我的环境为ndk r7,cygwin1.7,Android SDK为2.2和3.0.另外,我是通过真机调试,在模拟器上不行,估计还是我T410显卡的问题. 安装cygwin,在cygwin文件进行路径设置 在cyg