
Я поклонник Markdown, и есть очень полезный инструмент под названиемТипора(Это бесплатно, нонетОткрытый исходный код).
Когда я зашел на его официальный сайт, чтобы загрузить его, там не было ни анимации, ни сложного сервиса. Однако мои вентиляторы на моем компьютере работали на полной скорости, когда я заходил на этот сайт. А когда я открыл диспетчер задач, я увидел, что целое ядро съедено. Что делает этот сайт? Есть ли майнер биткоинов на JavaScript, включенный в исходный код?
Кроме того, есть ли у самой Typora такие же проблемы?
Существуют ли какие-либо полезные инструменты для анализа поведения определенного веб-сайта или программного обеспечения?
решение1
Я попытался получить доступ к этому сайту в моей виртуальной машине, и обнаружил ту же проблему. Сайт Typora запускает следующий скрипт:
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-54f423356e25706b" async="async"></script>
Typora также использует следующие скрипты без кэширования, чтобы иметь возможность использовать новейшие ресурсы:
https://m.addthisedge.com/live/boost/ra-54f423356e25706b/_ate.track.config_resp
https://s7.addthis.com/js/300/addthis_widget.js
Я заблокировал addthis.com
и addthisedge.com
использую hosts
файл в C:\Windows\System32\drivers\etc
. Это файл, используемый для сопоставления доменного имени с IP. Я указал эти домены на мой локальный случайный IP. После этого сайт не смог найти скрипты и не смог их выполнить.
Что такое addthis.com? СогласноХранительэто трекер социальных сетей. Я обнаружил, что он пытался считывать данные с других сайтов, которые я использовал в то время.
После блокировки этих сайтов загрузка ЦП нормальная.
решение2
Большинство веб-браузеров поставляются со встроенным инструментом разработки, который называется "Profiler". Этот инструмент можно использовать для определения того, какая функциональность javascript на веб-сайте потребляет сколько времени обработки. Инструменты разработки обычно вызываются с помощью F12.
Использование его на этом сайте подтверждает ответснова. Большую часть времени обработки тратит скрипт https://s7.addthis.com/js/300/addthis_widget.js
(точнее, функция i._handleScroll
). Скрипт минимизирован, поэтому мне не хочется больше исследовать, что он на самом деле делает. Либо этот скрипт настолько ужасен, либо разработчик веб-сайта допустил ошибку, когда интегрировал его в свой веб-сайт. В любом случае, это не вам исправлять. Вы можете заблокировать этот скрипт с помощью noscript или занести весь домен в черный список в hosts, но вполне возможно, что веб-сайт больше не будет работать правильно, если вы это сделаете.
Кстати: Веб-сайты, использующие вычислительную мощность своих посетителей для майнинга биткоинов или другой криптовалюты, на самом деле существуют. Я сам видел такие веб-сайты. Но они обычно не используют CPU. Они используют GPU посетителя черезAPI-интерфейс WebGL. Это означает, что вентиляторы вашего GPU начнут вращаться, но загрузка CPU в диспетчере задач останется довольно умеренной. Если вы хотите проверить текущую загрузку вашего GPU, посетите веб-сайт поставщика. Они часто предлагают сопутствующие программы для своих драйверов, которые показывают такую информацию.
решение3
Зависит от вашего браузера. В Firefox вы можете установитьNoScriptи выборочно добавить JS в белый список для этого сайта, возможно, это конкретный ресурс JS, который не является строго необходимым для просмотра самого Typora.
Ghostery, возможно, также способен делать то же самое в Chrome, хотя у меня гораздо меньше опыта в том, что он делает, но он гораздо более автоматизирован, чем Noscript.
Предупреждение: Мне нравится NoScript, но он может стать немного параноидальным в отношении вещей, и вам нужно будет много времени, чтобы добавить его в белый список. Лучше иметь другой браузер, в котором он также не будет доступен.
Обновление: да, это действительно большой свинья. Firefox показывает FirefoxCPWebContent на 170% на моем Mac Activity Monitor. И это при отключенном JS всего сайта. Похоже, они сильно облажались с кодом — для этого подпроцесса открыто много дескрипторов шрифтов.
Итог: даже NoScript не может это исправить.