Работает ли «отдельная песочница домена» (защита от перехвата файлов cookie JS) с поддоменом? - PullRequest
1 голос
/ 10 августа 2010

Немного подробнее:

  • Я управляю сайтом, на котором пользователи могут свободно отправлять Javascript
  • Другие люди будут предварительно просматривать этот Javascript 'live'
  • Будут приняты основные меры для предотвращения таких шалостей, как eval(), но, к сожалению, некоторые из них могут проскочить через
  • Сайт mysite.com , я собираюсь запустить скрипты с myotherdomain.com предотвратит перехват файлов cookie, однако не допустит ли их запуск с js.mysite.com ?(читай: cheapskate, сэкономьте деньги на дополнительном домене)
  • Наконец, будет ли он работать в <iframe> с mysite.com на отдельном домене или поддомене, по-прежнему работать так же эффективнокак загрузка совершенно нового сайта?

Ответы [ 3 ]

0 голосов
/ 10 августа 2010

Одинаковая политика происхождения (SOP) применяется к поддоменам, портам, протоколам и домену.
Если есть различие в одном из этих свойств, SOP запретит доступ.

Пока вы не используете document.domain на главной странице, поддомен будет защищен SOP. Если вы используете document.domain на главной странице, скрипт может сделать то же самое в iframe и обойти SOP.

Теперь, если вы хотите включить безопасную связь между iframes, вы можете использовать window.postMessage, если вы нацелены на современные браузеры и мобильные телефоны.

А для старых браузеров есть некоторые хитрости, например трюк window.name

Это не мешает созданию межсайтовых сценариев (создание POST для вашего домена с вашими действующими cookie-файлами из iframe). Вам нужно использовать секретный токен, который знает только javascript на вашей главной странице и который будет отправлен для каждого запроса.

0 голосов
/ 10 августа 2010

Лучший способ - запустить его в подходящей песочнице, а не удалять код. Я думаю, что вы можете делать такие вещи, как delete eval; или eval = null;. Возможно, вам повезет больше с delete document или document=null или delete document.cookie. Тест на разных браузерах, конечно.

РЕДАКТИРОВАТЬ: Также рассмотрите возможность использования файлов cookie «httponly», что (во многих браузерах) предотвращает их доступ в JavaScript. Первоначально это расширение IE, но оно было включено в большинство крупных браузеров IIRC.

0 голосов
/ 10 августа 2010

Да, субдомен такой же, за исключением файлов cookie, которые являются файлами cookie домена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...