Чем опасны скрипты в браузере
JavaScript - это одна из таких вещей, без которых уже довольно сложно представить современную Всемирную паутину. Благодаря JavaScript'у она впервые приобрела ту заманчивую интерактивность, которую потом развили такие технологии, как Flash и AJAX. Однако, как то ни удивительно, название такой широко используемой технологии зачастую вызывает недоумение у пользователей Всемирной паутины.
JavaScript - это специальный язык программирования, разработанный для использования в браузерах. Впервые он появился ещё в 1995 году в браузере Netscape Navigator и с тех пор его поддержка является международным стандартом для всех приличных браузеров (кроме, разве что, пожалуй, мобильных). JavaScript используется для написания небольших программ - скриптов, которые могут реагировать определённым образом на действия пользователей, открывших ту или иную web-страницу. Хорошей иллюстрацией использования JavaScript будут выпадающие меню, которые используются для навигации на многих сайтах во Всемирной паутине.
На самом деле использование JavaScript может быть куда шире, чем только для web-страниц. С помощью этого языка программирования можно создавать скрипты, автоматизирующие какие-либо рутинные операции, которые можно не выполнять вручную, а переложить на плечи программы.
JavaScript несёт в себе не только пользу - потенциально он опасен, и сейчас его рекомендуется по умолчанию отключать в браузерах. Дело в том, что программу можно написать не только полезную, но и вредную (или, вернее сказать, вредоносную) - например, такую, которая будет воровать вводимые вами пароли или закачивать троян, который станет заниматься рассылкой спама. Именно из-за того, что в Интернете количество вредоносных программ превышает все мыслимые и немыслимые пределы, в настоящее время всем пользователям рекомендуется отключить JavaScript для всех сайтов, кроме тех, которые точно являются проверенными и не несут в себе никакой потенциальной угрозы.
Стоит отметить, что JavaScript является не единственным в своём роде языком программирования, применяемым для повышения интерактивности web-страниц. Internet Explorer поддерживает JScript, очень похожий на JavaScript, но всё-таки несколько отличный от него в некоторых деталях, а также совершенно отдельный язык VBScript. Однако, поскольку VBScript не поддерживается другими распространёнными браузерами, то и разработчики web-страниц используют его намного реже, чем JavaScript.
JavaScript-разработчики часто жалуются на то, что их язык программирования несправедливо ругают за то, что он имеет слишком много чрезмерно усложнённых, запутанных возможностей. Многие борются с таким отношением к JS, рассказывая о том, почему критиковать этот язык за то, чем он является, неправильно. Автор материала, перевод которого мы сегодня публикуем, решил не защищать JS, обратившись, вместо этого, к тёмной стороне языка. Однако тут он не хочет говорить, например, о тех ловушках, которые JavaScript расставляет для неопытных программистов. Его интересует вопрос о том, что получится, если попытаться подтвердить плохую репутацию языка кодом, который мог бы написать тот, кто совершенно не заботится об окружающих.
В примерах к этому материалу будет использовано множество механизмов языка. Многое из того, что вы здесь увидите, кстати, работает и в других языках, поэтому, при должном усердии, можно обнаружить и их тёмные стороны. Но JavaScript, определённо, обладает настоящим даром ко всякого рода издевательствам, и с ним в этой области очень непросто тягаться другим языкам. Если вы пишете код, с которым нужно будет работать другим людям, JS даёт вам неисчерпаемое количество возможностей для того, чтобы этих людей раздражать, путать, всячески изводить и обманывать. Собственно говоря, тут мы рассмотрим лишь небольшую часть подобных приёмов.
Геттеры-модификаторы
JavaScript поддерживает геттеры — функции, которые позволяют работать с тем, что они возвращают, как с обычным свойством. При нормальном использовании это выглядит так:
Если же воспользоваться геттерами, замышляя недоброе, то, например, можно создавать саморазрушающиеся объекты:
Здесь, при каждом обращении к obj.evil , будет удаляться одно из других свойств объекта. При этом код, работающий с obj.evil , не будет знать о том, что прямо у него под носом происходит нечто весьма странное. Однако, это — только начало разговора о вредных побочных эффектах, которых можно добиваться с помощью механизмов JavaScript.
Неожиданные прокси
Геттеры — это здорово, но они существуют уже многие годы, о них знает множество разработчиков. Теперь же, благодаря прокси, в нашем распоряжении оказывается куда более мощный инструмент для развлечений с объектами. Прокси — это возможность ES6, которая позволяет создавать обёртки вокруг объектов. С их помощью можно управлять тем, что происходит, когда пользователь пытается читать или записывать свойства проксируемых объектов. Это позволяет, например, создать объект, который, в одной трети попыток доступа к некоему ключу такого объекта, будет возвращать значение по случайно выбранному ключу.
Нашу подлость, к сожалению, частично раскрывают инструменты разработчика, идентифицирующие evilObj как объект типа Proxy . Однако, вышеописанная конструкция, до того, как будет раскрыта её низменная сущность, способна доставить тем, кто будет с ней работать, немало приятных минут.
Заразные функции
До сих пор мы говорили о том, как объекты могут модифицировать сами себя. Но мы, кроме того, можем создавать невинно выглядящие функции, которые инфицируют объекты, передаваемые им, меняя их поведение. Например, предположим, у нас есть простая функция get() , которая позволяет выполнять безопасный поиск свойства в передаваемом ей объекте с учётом того, что такого объекта может и не существовать:
Такую функцию легко переписать так, чтобы она инфицировала передаваемые ей объекты, слегка изменяя их. Например, можно сделать так, чтобы свойство, к которому она помогла получить доступ, больше не выводилось бы при попытке перебрать ключи объекта:
Это — образец весьма тонкого вмешательства в поведение объекта. Перечисление ключей объекта — не самая заметная операция, так как она и не является очень редкой, но и используется не слишком часто. Так как ошибки, к которым может привести подобная модификация объектов, нельзя привязать к их коду, они могут существовать в некоем проекте довольно долго.
Прототипный беспорядок
Выше мы обсуждали разные возможности JS, в том числе — и довольно свежие. Однако иногда нет ничего лучше, чем старые, проверенные временем технологии. Одной из особенностей JS, из-за которой на него обрушивается больше всего критики, является возможность модификации встроенных прототипов. Эта возможность использовалась в ранние годы JS для расширения встроенных объектов, например — массивов. Вот как расширить стандартные возможности массивов, скажем, добавив к прототипу объекта Array метод contains :
Как оказывается, если сделать что-то подобное в реально используемой библиотеке, это может нарушить работу с базовыми механизмами языка во всём приложении, использующем эту библиотеку. Поэтому включение дополнительных полезных методов в прототипы стандартных объектов можно считать весьма удачным ходом для терпеливых разработчиков, которые стремятся делать другим гадости. Однако если речь идёт о нетерпеливых социопатах, им можно предложить кое-что быстродействующее, но не менее интересное. У модификации прототипов есть одно весьма полезное свойство, которое заключается в том, что модификация воздействует на весь код, который выполняется в некоем окружении, даже на тот, который загружается из модулей или находится в замыканиях. В результате, если оформить следующий код в виде стороннего скрипта (скажем, это может быть скрипт рекламной сети или аналитической службы), то весь сайт, использующий этот скрипт, окажется подверженным небольшим ошибкам.
Тут мы переопределили стандартный метод Array.prototype.map так, что он, в целом, работает нормально, но в 5% случаев меняет местами два элемента массива. Вот что можно получить после нескольких вызовов подобного метода:
Тут мы запустили его три раза. То, что получилось при его первом использовании, немного отличается от следующих двух результатов его вызова. Это мелкое изменение, оно далеко не всегда вызовет какой-нибудь сбой. А самое приятное здесь то, что понять причину редко возникающих ошибок, вызываемых подобным методом, невозможно без чтения его исходного кода, который и является причиной этих ошибок. Наша функция не бросается в глаза при работе с инструментами разработчика, она не выдаёт ошибок при работе в строгом режиме. В общем, с помощью чего-то подобного вполне можно свести кого-нибудь с ума.
Непростые имена
Именование сущностей, как известно, является одной из двух сложнейших задач компьютерной науки. Поэтому плохие имена придумывают не только те, кто сознательно стремится навредить другим. Конечно, в это может быть трудно поверить бывалым линуксоидам. В их распоряжении были годы на то, чтобы связать страшнейшего IT-нарушителя в сфере именования (Microsoft) с глубочайшими формами зла. Но неудачные имена не приносят прямого вреда программам. Не будем говорить о мелочёвке вроде имён, вводящих в заблуждение и о потерявших актуальность комментариях. Например, о таких:
Для того чтобы в это вникнуть и понять, что тут что-то не так и с комментарием, и с именем переменной, тому, кто читает код, в котором встречается подобное, придётся малость притормозить и подумать. Но это — ерунда. Давайте лучше поговорим о по-настоящему интересных штуках. Вы знали, что большинство Unicode-символов можно использовать для именования переменных в JavaScript? Если вы, в вопросе назначения имён переменных, настроены на позитив, то вам понравится идея использования имён в виде значков (Хабр вырезал emoji, хотя в оригинале тут после let была emoji какахи):
Хотя, мы ведь тут говорим о настоящих гадостях, поэтому обратимся лучше к символам, которые похожи на те, какими обычно пользуются для именования переменных, но ими не являются. Например, сделаем вот так:
Буква b в имени obj может выглядеть почти нормально, но это — не строчная латинская буква b. Это — так называемая полноширинная строчная латинская буква b. Символы это разные, поэтому любой, кто попытается ввести имя подобной переменной вручную, скорее всего, окажется сильно сбитым с толку.
Итоги
Несмотря на рассказ о разных гадостях, которые можно творить с помощью JavaScript, этот материал направлен на то, чтобы предостеречь программистов от использования приёмов, подобных описанным, и донести до них тот факт, что подобное может причинить реальный вред. Автор материала говорит, что всегда полезно знать о том, какие проблемы могут появляться в плохо написанном коде. Он полагает, что нечто подобное можно найти в реальных проектах, но надеется, что там это существует в менее деструктивной форме. Однако то, что программист, написавший подобный код, не стремился навредить другим, не делает легче работу с таким кодом и его отладку. При этом знание того, до чего могут довести целенаправленные попытки навредить, способно расширить кругозор программиста и помочь ему в поиске источника похожих ошибок. Никто не может быть полностью уверен в том, что в коде, с которым он работает, не затаилась ошибка. Возможно, кто-то, зная о своей склонности к чрезмерной подозрительности, попытается успокоить себя тем, что тревога о подобных ошибках — это лишь плод его воображения. Однако это не помешает таким ошибкам, возможно, внесённым в некий код намеренно, однажды себя проявить.
О вредоносных скриптах: как они работают, чем опасны и как не столкнуться с ними
18 января 2021
Сегодняшний выпуск посвящаем краткому экскурсу в мир вредоносных скриптов, разговору о том, как им противостоит Dr.Web, - и советам о том, как избежать встречи с ними.
Один из наших читателей в соцсетях задал вопрос о вредоносных скриптах и общей безопасности при работе в Интернете. В частности, он интересовался защитой от угроз на JavaScript и других скриптов, размещаемых злоумышленниками на веб-страницах, а также попросил дать несколько советов по правильной настройке веб-антивируса Dr.Web. Благодарим за актуальный вопрос – ведь это отличный повод разобраться, в чем же там дело!
Если рассказывать обо всех вредоносных скриптах, которые когда-либо видели специалисты нашей вирусной лаборатории, то статья по своему объему потянет на учебник и явно не впишется в формат «Антивирусной правды». Вы наверняка уже догадались, что это очень многообразный, а значит – распространенный тип вредоносных программ.
Что же такое вредоносный скрипт?
В широком смысле всякий скрипт – это программный код (сценарий), написанный на различных интерпретируемых языках. Все скрипты выполняются с помощью внешней программы – интерпретатора. В отличие от исполняемых файлов, скрипты в большинстве своем существуют в виде текстовых файлов и могут быть прочитаны человеком. Например, исходный код скомпилированного файла привести в первозданный вид почти невозможно, а скрипты, напротив, всегда содержат исходный код. По принципу работы «плохие» скрипты ничем не отличаются от «хороших».
Вредоносные скрипты можно условно разделить на два вида.
- Скрипты, которые встраиваются в код веб-страниц, интерпретируются браузером и выполняют действия, заложенные злоумышленниками.
- Скрипты, которые предназначены для запуска на компьютере пользователя. Они исполняются компонентами операционной системы и имеют доступ к API (файловая система, процессы и т. д.).
В контексте работы в Интернете под вредоносными скриптами чаще всего подразумевается первый вид. Такие сценарии как правило написаны на JavaScript и PHP. Они находятся в коде страниц недобросовестных или взломанных сайтов и пытаются майнить криптовалюту в браузере пользователя, отображают рекламу с целью накруток, перенаправляют на другие сайты, зачастую мошеннические и опасные. К веб-скриптам можно отнести и PHP-инфекторы, которые заражают «хорошие» скрипты на серверной стороне. Кроме того, вредоносный код может находиться в составе расширений для браузеров.
Теоретически скрипт веб-страницы может быть использован как эксплойт – набор ошибочно интерпретируемых браузером данных, позволяющий получить доступ к атакуемой системе. Однако в настоящее время такие эксплойты встречаются все реже в виду развития браузеров, которые ограничивают доступ к функциям ОС, поэтому вредоносный код на сайте едва ли может навредить компьютеру в целом. Но несмотря на это, упомянутых деструктивных функций вполне достаточно, чтобы сильно испортить жизнь любому пользователю. Реклама, мошенничество, фишинг, замедление работы браузера, даже сам взлом сайтов – это все про веб-скрипты. К тому же они кроссплатформенны и очень распространены, поскольку злоумышленники массово используют их для инфицирования страниц и веб-серверов.
Но опасность подстерегает не только на сайтах. Другим видом вредоносных скриптов являются сценарии, которые запускаются компонентами ОС. Они могут быть написаны на разных скриптовых языках: JScript, VBS, PowerShell, Perl, Python и многих других. Такие сценарии гораздо более функциональны и опасны, так как обращаются напрямую к API-объектам. Несмотря на то, что скрипты крайне редко содержат основную функциональность, они часто используются либо для начальной загрузки других вредоносных модулей в заражаемые системы, либо для промежуточных действий или вспомогательных операций. Например, в Windows часто встречаются PowerShell-скрипты, содержащие эксплойты или утилиты для продвижения по системе/сети. Хотя скрипты и считаются кроссплатформенным инструментом, некоторые из них работают только в предназначенных для этого ОС, так как для их работы важно наличие тех или иных системных API. Упомянутые PowerShell, а также BAT и JScript-сценарии работают в Windows, AppleScript предназначен для macOS, а ВПО для Linux часто представлено в виде bash-скриптов.
Системные скрипты для ОС чаще всего распространяются через электронную почту, раздаются на взломанных и вредоносных сайтах, загружаются другими программами, распространяются самостоятельно через съемные носители и сетевые ресурсы.
Добавим, что почти все вредоносные (и не только) скрипты тем или иным образом обфусцированы. Это значит, что для их детектирования часто приходится применять другие технологии, нежели традиционное сравнение по сигнатурам.
Для обезвреживания системных скриптов в Windows мы применяем алгоритмы машинного обучения, встроенные в основное антивирусное ядро. Такой подход позволяет успешно детектировать вредоносный код вне зависимости от его запутанности, что невозможно было бы сделать при помощи сигнатурного анализа.
Для блокировки веб-скриптов используется наш эвристический анализатор и веб-антивирус – SpIDer Gate. Отметим, что для эффективной защиты дополнительно настраивать какой-либо из компонентов Dr.Web не нужно, так как настройки по умолчанию соответствуют оптимальным.
Таким образом, сегодня мы узнали, что скрипты могут нести самую разную вредоносную нагрузку – являться эксплойтами, майнерами, различными вспомогательными утилитами, рекламными троянами и даже шифровальщиками. Чтобы обезопасить себя и свой компьютер, требуется использовать надежную защиту.
Вы, наверное, слышали, что JavaScript опасен. Ну, это отчасти правильно. JavaScript может быть опасным, если не будут приняты надлежащие меры предосторожности. Его можно использовать для просмотра или кражи личных данных, даже не подозревая, что это происходит. А поскольку JavaScript так широко распространен в Интернете, мы все уязвимы.
Все сводится к тому, как на самом деле работает JavaScript по большей части хорош, но он настолько гибок и силен, что держать его под контролем может быть сложно. Вот что вам нужно знать.
Преимущества JavaScript
Перво-наперво, JavaScript это хорошо . Согласно W3Techs, примерно 88,1% всех сайтов так или иначе используют JavaScript . Большинство известных сайтов, таких как Amazon и YouTube, не были бы столь полезными, если бы Интернет был зоной без JavaScript.
Например, JQuery — это популярная библиотека JavaScript, которая позволяет легко создавать интерактивные веб-сайты с элементами, которые могут изменяться без необходимости перезагружать вся страница Такие сайты, как Facebook и Twitter, используют такие технологии, как AJAX чтобы обновлять веб-страницы (например, отметки времени, количество лайков и т. Д.), Не обновляя страницу каждую секунду.
Но, как мы скоро увидим, JavaScript не идеален. Этим злоупотребляют, и это злоупотребление приводит к сценариям, которые позволяют отслеживать вашу активность в Интернете и нарушать вашу конфиденциальность.
Один из распространенных, но ошибочных советов — полностью отключить JavaScript, но мы его не рекомендуем. Вы бы потеряли множество потрясающих веб-функций, таких как функция «бесконечной прокрутки», которая существует во многих блогах, социальных сетях и новостных сайтах.
Более того, некоторые браузерные эксплойты все еще возможны, даже если вы отключите JavaScript. Таким образом, отключение JavaScript из-за проблем безопасности похоже на ношение костюма-пузыря каждый раз, когда вы выходите на улицу, потому что вы боитесь получить травму. Это на самом деле не защитит вас от многих, но сделает вашу жизнь несчастной.
Snooping слова, которые вы вводите
Они сделали это, внедрив немного JavaScript, который отслеживал текстовые поля, где пользователи могли делать обновления статуса, писать комментарии на стене и т. Д. Исследователи ясно дали понять, что они записывают только «наличие или отсутствие введенного текста», а не «нажатия клавиш или контент». », Но суть очевидна.
Можно было отслеживать нажатия клавиш и контент. Они просто решили не делать этого.
Понятие страшно. Простой фрагмент встроенного JavaScript — это все, что нужно для записи любого вида активности на веб-странице — даже если вы на самом деле ничего не отправляете ! Веб-прокрутка, движения мыши, нажатия клавиш: все это можно отслеживать и записывать против вашей воли или знаний.
Отслеживание ваших привычек просмотра
Возможности отслеживания JavaScript не ограничиваются только текстовыми полями. С помощью магии файлов cookie браузера , компании могут хранить все виды пользовательской информации: тип браузера, предпочтения, местоположение и т. Д. Утверждение заключается в том, что этот вид отслеживания делается для обеспечения лучшего взаимодействия с пользователем (например, релевантный реклама), но это все еще похоже на нарушение.
Файлы cookie являются постоянными, то есть они продолжают существовать даже после того, как вы покинете веб-страницу или закроете браузер (если срок их действия не истек или вы не удалили их вручную). Вы видите растущую проблему? Если файл cookie сохраняется с веб-страницы на веб-страницу, компания может увидеть, какие веб-сайты вы посещаете.
Это лучше всего объяснить на примере: кнопки социальных сетей. Рассмотрим кнопку «Нравится» Facebook, которая использует JavaScript для выполнения своих действий. Когда ваш браузер загружает страницу, он должен загрузить кнопку. Загрузка кнопки означает запрос в Facebook необходимого файла JavaScript. Этот запрос включает в себя такие данные, как ваш IP-адрес, веб-страницу, на которой вы находитесь, файлы cookie Facebook в вашей системе и т. Д.
Просто чтобы быть понятным, вам не нужно нажимать кнопку, чтобы отслеживать вас. Акт загрузки достаточно, чтобы эти общие виджеты собирали данные о вас.
При этом кнопки социальных сетей — это лишь один из многих способов, с помощью которых компании могут отслеживать ваши привычки просмотра. Другие примеры включают в себя профили онлайн-знакомств, комментарии Disqus и веб-сайты, которые используют бесплатные веб-шрифты .
Инъекция вредоносного кода
Одно из самых коварных применений JavaScript происходит в форме межсайтовых сценариев (XSS). Проще говоря, XSS — это уязвимость, которая позволяет хакерам встраивать вредоносный код JavaScript в легитимный веб-сайт, который в конечном итоге исполняется в браузере пользователя, который посещает сайт.
Если это происходит на веб-сайте, который обрабатывает конфиденциальную информацию пользователя, такую как финансовые данные, злонамеренный код может потенциально отследить и украсть эту информацию. Иными словами , XSS можно использовать для распространения вирусов и вредоносных программ. Именно это произошло, когда Twitter был заражен червем StalkDaily .
XSS также можно использовать для чего-то, называемого отравлением поисковой системы. отравление . Короче говоря, производители вредоносного ПО могут использовать JavaScript для заражения веб-сайтов с высоким рейтингом результатов поиска таким образом, что вместо этого пользователи, которые пытаются посетить эти сайты, перенаправляются на зараженные вредоносным ПО веб-сайты.
И еще есть нечто, называемое подделкой межсайтовых запросов (CSRF), которое является противоположностью XSS. Этот вид вредоносного кода JavaScript может использовать браузер пользователя, файлы cookie и разрешения безопасности для выполнения действий на отдельном веб-сайте.
Что вы можете сделать для защиты от атак на основе JavaScript?
В конечном счете, ответственность за обеспечение чистоты и безопасности веб-сайтов лежит на веб-разработчиках. Однако, как конечному пользователю, вы всегда должны поддерживать свои браузеры в актуальном состоянии и регулярно проверять их на наличие вредоносных программ.
При этом я могу рассчитывать с одной стороны, сколько раз я сталкивался с вышеуказанными проблемами. JavaScript является важной частью современного Интернета. Это принесло нам больше пользы, чем вреда, и оно здесь, чтобы остаться. Заинтересованы в том, чтобы стать разработчиком JavaScript, ? Начните использовать эти бесплатные учебные ресурсы
Вы когда-нибудь сталкивались с проблемами JavaScript? Вы практикуете безопасные привычки для безопасности и конфиденциальности? Расскажите нам о своем опыте в комментариях ниже!
Если вы используете Internet Explorer, причина появления ошибок сценария, вероятно, связана с тем, что Internet Explorer был заменен Edge. Microsoft настоятельно рекомендует вам перейти на Edge , но переход на Chrome, Firefox или любой другой современный браузер будет иметь тот же эффект.
Когда ошибка скрипта мешает функционированию веб-сайта или эти ошибки становятся слишком неприятными, есть несколько шагов, которые можно предпринять, чтобы решить проблему.
Если это проблема с вашей стороны, то обновление веб-браузера, переключение на другой веб-браузер или изменение некоторых настроек в вашем браузере обычно решит проблему.
Попробуйте загрузить веб-страницу еще раз. Ошибки скрипта, особенно ошибки, указывающие на то, что запуск скрипта занимает слишком много времени, иногда устраняются, если вы просто перезагрузите веб-страницу. Если ошибка не повторяется, вам не о чем беспокоиться. Если он продолжает возвращаться, возможно, проблема в вашем веб-браузере.
- Чтобы принудительно перезагрузить веб-страницу в Windows: удерживайте Ctrl + F5 .
- Для того, чтобы заставить веб — страницу для перезагрузки на MacOS: Удержание Ctrl + Shift + R .
Обновите свой веб-браузер. Устаревшие веб-браузеры иногда взаимодействуют со сценариями неожиданным образом, что приводит к ошибкам. Так как в любом случае из-за проблем с безопасностью рекомендуется обновлять ваш веб-браузер, это одно из первых исправлений, которое вам следует попробовать. Обновление Google Chrome или Firefox довольно просто.
Microsoft Edge обновляется автоматически вместе с Windows. Если у вас возникли проблемы с Центром обновления Windows, существуют другие способы обновления Windows .
Попробуйте загрузить другие веб-страницы. Это простой способ проверить, локализована ли проблема на одном веб-сайте. Если вы видите ошибки сценариев на одном веб-сайте, возможно, существует проблема со сценариями на этом веб-сайте, и вы ничего не можете с этим поделать. Если вы видите ошибки сценариев на многих веб-сайтах, возможно, проблема в вашем веб-браузере.
Переключитесь на другой веб-браузер . Это еще один простой, но важный шаг, который может помочь сузить источник проблемы. Если веб-страница нормально загружается в другом браузере, то возникает проблема с первым браузером. Вы можете изменить браузер по умолчанию в Windows, а также в MacOS .
В некоторых случаях, просто использование другого браузера, который не создает ошибки скрипта, является лучшим и самым простым вариантом. Это особенно верно, если вы используете более не поддерживаемый браузер, такой как Internet Explorer.
Попробуйте загрузить веб-страницу с другого устройства. Это хороший способ определить, является ли проблема вашей целью или нет. Если вы видите ошибку сценария при посещении веб-страницы на своем компьютере, но не видите ее при посещении этой страницы с помощью телефона, компьютера друга или другого устройства, то проблема на вашей стороне.
Если вы видите одну и ту же ошибку на нескольких устройствах, возможно, существует проблема с веб-сайтом, который вы пытаетесь посетить. В этом случае все, что вы можете сделать, это подождать, пока веб-мастер решит проблему.
Удалить временные интернет-файлы . Если у вас повреждены файлы интернет-кэша на вашем компьютере, вы можете столкнуться с ошибками сценария. В большинстве случаев простая очистка кэша вашего веб-браузера решит эту проблему.
Отключите ваши плагины . Когда что-то идет не так, возможно непредвиденное взаимодействие между плагином и веб-сайтом, чтобы помешать правильной работе скрипта.
Если ошибка вашего скрипта исчезла после отключения ваших плагинов, включите их по одному, чтобы определить, какой плагин вызывает проблему. Вы можете либо продолжить использовать плагин и жить с ошибкой скрипта, либо прекратить использование этого плагина, пока разработчик не исправит проблему.
Отключить аппаратное ускорение. Аппаратное ускорение — это функция, которая позволяет вашему веб-браузеру задействовать всю мощь вашей видеокарты. В некоторых случаях включение этой функции нарушит работу определенных сценариев. Отключение позволяет этим скриптам работать нормально. Вы можете отключить аппаратное ускорение в Chrome и отключить аппаратное ускорение в Firefox .
Сбросьте настройки безопасности браузера или сбросьте настройки браузера. В некоторых случаях ненормально высокие параметры безопасности в вашем веб-браузере могут мешать работе сценариев. Если у вас нет конкретной причины для того, чтобы установить высокий уровень безопасности, попробуйте сбросить уровень безопасности.
Если это не сработает, вы также можете просто сбросить настройки браузера сразу. Вы можете быстро восстановить Chrome до его состояния по умолчанию, обновить Firefox , сбросить Microsoft Edge и сбросить Safari .
Ждите вебмастера. Если вы по-прежнему сталкиваетесь с ошибками сценария после выполнения всех этих исправлений, скорее всего, существует проблема со сценарием на веб-сайте, который вы пытаетесь использовать. Это особенно вероятно, если вы видите ошибку сценария только при посещении определенного веб-сайта или веб-сайтов. Поскольку это вне вашего контроля, вам просто нужно подождать, пока веб-мастер веб-сайта решит проблему.
Читайте также: