Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 同源策略和外部脚本_Javascript_Xss_Same Origin Policy - Fatal编程技术网

Javascript 同源策略和外部脚本

Javascript 同源策略和外部脚本,javascript,xss,same-origin-policy,Javascript,Xss,Same Origin Policy,我的任务是整合AdBrite的广告代码 这是我收到的片段,经过消毒以删除我们的标识符: <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_Col

我的任务是整合AdBrite的广告代码

这是我收到的片段,经过消毒以删除我们的标识符:

<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>

var AdBrite_Title_Color='3D81EE';
var AdBrite_Text_Color='000000';
var AdBrite_Background_Color='ffffffff';
var AdBrite_Border_Color='CCCC';
var AdBrite_URL_Color='008000';
尝试{var-AdBrite\u-Iframe=window.top!=window.self?2:1;var-AdBrite\u-referer=document.referer=''document.location:document.referer;AdBrite\u-referer=encodeURIComponent(AdBrite\u-referer);}捕捉(e){var-AdBrite\u-Iframe='';var-AdBrite\u-referer=''
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_referer+””type=“text/javascript”>”;编写(String.fromCharCode(60,47,83,67,82,73,80,84,62));
它通过写入DOM从Adbrite服务器加载远程脚本。
字符串.fromCharCode
巧妙地写出了
的ASCII字符,以便引用远程Javascript文件

我的问题是:为什么这样做?浏览器不认为这违反了同源策略吗?

顺便说一句,促使我对此进行调查的是,我在GWT的UIBinder中对URL参数进行了正确转义,然后取消转义


谢谢,同源策略适用于AJAX请求。加载远程脚本不受此规则控制,因此可能存在类似的解决方案。

同源策略适用于AJAX请求。加载远程脚本不受此规则的约束,因此可能存在类似的解决方案。

好的,但为什么AdBrite会用字符串.fromCharCode混淆它?我相信这可能是一些旧浏览器误解引号内的
标记的一种解决方法。不过也不确定。另请参见.Hmm,我认为字符串.fromCharCode()的作用是,他们使用它来动态设置url参数,并进行转义,这样浏览器就不会尝试在“第一次通过”时将其解释为脚本。谢谢,Xion&idealmachine.OK,但是为什么AdBrite会用字符串.fromCharCode混淆它呢?我相信这可能是一些老浏览器误解引号中的
标记的一种解决方法。不过也不确定。另请参见.Hmm,我认为字符串.fromCharCode()的作用是,他们使用它来动态设置url参数,并进行转义,这样浏览器就不会尝试在“第一次通过”时将其解释为脚本。谢谢,熊和艾德机器。