【发布时间】:2011-08-08 02:52:39
【问题描述】:
我的任务是集成来自 AdBrite 的广告代码。
这是给我的 sn-p,经过清理以删除我们的标识符:
<script type="text/javascript">
var AdBrite_Title_Color = '3D81EE';
var AdBrite_Text_Color = '000000';
var AdBrite_Background_Color = 'FFFFFF';
var AdBrite_Border_Color = 'CCCCCC';
var AdBrite_URL_Color = '008000';
try{var AdBrite_Iframe=window.top!=window.self?2:1;var AdBrite_Referrer=document.referrer==''?document.location:document.referrer;AdBrite_Referrer=encodeURIComponent(AdBrite_Referrer);}catch(e){var AdBrite_Iframe='';var AdBrite_Referrer='';}
</script>
<script type="text/javascript">document.write(String.fromCharCode(60,83,67,82,73,80,84));document.write(' src="http://ads.adbrite.com/mb/text_group.php?sid=sanitized&zs=sanitized&ifr='+AdBrite_Iframe+'&ref='+AdBrite_Referrer+'" type="text/javascript">');document.write(String.fromCharCode(60,47,83,67,82,73,80,84,62));</script>
<div><a target="_top" href="http://www.adbrite.com/mb/commerce/purchase_form.php?opid=sanitized&afsid=1" style="font-weight:bold;font-family:Arial;font-size:13px;">Your Ad Here</a></div>
它通过写入 DOM 从 Adbrite 服务器加载远程脚本。 String.fromCharCode 巧妙地为 <script> 写出 ASCII 字符,以便引用远程 Javascript 文件。
我的问题是:为什么会这样?浏览器不认为这违反了同源政策吗?
顺便说一句,促使我对此进行调查的原因是我让trouble 让 URL 参数正确转义,然后在 GWT 的 UIBinder 中取消转义。
谢谢
【问题讨论】:
标签: javascript xss same-origin-policy