Блок “document.location” перенаправление JavaScript на одной странице

У меня есть сайт, где я хочу препятствовать тому, чтобы страница перезагрузила использование document.location в теге script. Как я могу сделать это в Firefox?

2
задан 10.07.2014, 22:50

2 ответа

Дополнение GreaseMonkey для Firefox разработано, чтобы сделать точно это.

0
ответ дан 08.12.2019, 07:38

На самом деле Механик не заблокируется, если HTML-код будет содержать встроенный блок JavaScript с перенаправлением как так:

<script type="text/javascript">
var url = "http://google.com";
document.location.replace(url);
</script>

Механик, однако может привыкнуть к вызовам блока к определенным функциям - просто перезаписывают их :). Если вышеупомянутое было перенесено в вызов функции как так:

<script type="text/javascript">
function redirect_to(url)
{
  document.location.replace(url);
}
</script>

Затем Вы могли просто переопределить функцию в Механике:

function redirect_to(url){ return true }

Блок встроенные перенаправления с помощью Firefox

По существу Firefox позволяет заблокировать любое управление DOM как location.href.replace от определенного сайта через так называемый: Настраиваемая Политика безопасности (ЗАГЛАВНЫЕ БУКВЫ)

Слово предупреждения: Обратите внимание, что Ваши настройки безопасности затем заблокируют ВСЕ вызовы от того домена для location.href.replace. Если какое-либо приложение использует тот вызов, нет никакого способа разрешить некоторых других блока и вызовы.

Установка ЗАГЛАВНЫХ БУКВ для блокирования location.href.replace

Вам не нужен Механик для этой задачи. Firefox идет со встроенной возможностью, позволять/запрещать доступ к свойствам/методам Объектов DOM на основе на сайт. Это называют Настраиваемой Политикой безопасности (ЗАГЛАВНЫЕ БУКВЫ), и это описано в 1.

Краткий справочник, принимающий самый простой случай:

  1. Близкий Firefox
  2. Найдите свою папку профиля
  3. Найдите файл user.js в этой папке. Если это не существует, создайте его с текстовым редактором (Блокнот, энергия, и т.д.)
  4. Добавьте следующие строки к user.js:

    user_pref ("capability.policy.policynames", "noframebuster"); user_pref ("capability.policy.noframebuster.sites", "http://www.annoying-site.com"); user_pref ("capability.policy.noframebuster. Location.replace", "noAccess");

Конечно, необходимо будет заменить домен тем, которому Вы хотите препятствовать перенаправить Ваши кадры.

Найдите более полное объяснение из моего блога (justaddwater.dk): Подсказка по Firefox Для JavaScript Framebuster.

2
ответ дан 08.12.2019, 07:38

Теги

Похожие вопросы