Мне было поручено интегрировать рекламный код из 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>
Загрузка удаленногосценарий с серверов Adbrite путем записи в DOM.String.fromCharCode
ловко записывает символы ASCII для <script>
, чтобы сослаться на удаленный файл Javascript.
Мой вопрос: почему это работает?Разве браузеры не распознают это как нарушение политики одного и того же происхождения?
Кстати, что побудило меня к расследованию этого факта: у меня проблема при получении URLпараметры должны быть правильно экранированы, а затем не экранированы в UWBinder GWT.
Спасибо