гарантируя, что содержание iframed не может получить доступ к родителю через JavaScript - PullRequest
0 голосов
/ 06 сентября 2011

, хотя я знаю, что правила xss должны применяться к контенту iframed, если домен, протокол и т. Д. Не совпадают, мне было интересно, если есть какой-либо способ обеспечить, чтобы контент iframed не мог получить доступ к родителю через javascript.

например, даже если порт домена и протокол совпадают.

Основная идея такова:

1) domain.com содержит несколько фреймов, содержащих стороннюю рекламу

2) фреймы, содержащие код баннера, размещены на ads.domain.com

3) в большинстве случаев сторонние рекламные объявления загружаются через что-то вроде внутри фреймов, размещенных на ads.domain.com:

<script type="text/javascript" src="http://www.3rd-party-ad-provider.....

Есть ли какие-либо дальнейшие шаги, которые мы можем предпринять, чтобы закончить сценарий следующим образом:

третье лицо ads.domain.com domain.com (родитель, удерживающий рекламные фреймы)

приветствуются даже шаги, которые совместимы только с последними браузерами. что-нибудь, чтобы улучшить это. мы видим довольно много js-ошибок, просачивающихся через него, и я предполагаю, что, по крайней мере, некоторые из них вызваны неправильным рекламным кодом, искажающим родительский (самый верхний) текст документа.

мерси!

1 Ответ

1 голос
/ 06 сентября 2011

, хотя я знаю, что правила xss должны применяться к контенту iframed, если домен, протокол и т. Д. Не совпадают, мне было интересно, если есть какой-либо способ обеспечить, чтобы контент iframed не мог получить доступ к родителю через javascript.*

Ничего из того, что работает в разных браузерах или без побочных эффектов.

Стороннее ads.domain.com domain.com (родитель, удерживающий объявлениеiframes)

Та же самая политика происхождения делает это.

мы видим довольно много утечек ошибок js через, и я предполагаю, что по крайней мере некоторые из них вызваныиз-за неправильного рекламного кода, искалечившего родительский (самый верхний) текст документа.

Если JS выдает ошибку во фрейме, он все равно будет ошибочным.Он не должен касаться фрейма верхнего уровня, но браузеры будут сообщать об ошибках.

Поскольку вы имеете дело с контентом третьих сторон, вы не можете catch ошибки.

Вы можетепросто вступайте в жесткую линию с рекламодателями и отклоняйте рекламу, которая не проходит контроль качества.Вам придется взвесить стоимость отказа от рекламы с преимуществами улучшенного опыта для посетителей.

...