特定の Web サイトにアクセスしただけで CPU のコア全体が使い果たされた場合、どうすればよいでしょうか?

特定の Web サイトにアクセスしただけで CPU のコア全体が使い果たされた場合、どうすればよいでしょうか?

私はマークダウンのファンで、とても便利なツールがあります。タイポラ(無料ですがないオープンソース)。

公式サイトにアクセスしてダウンロードしたところ、アニメーションも複雑なサービスもありませんでした。しかし、このサイトにアクセスすると、コンピューターの冷却ファンがフルスピードで回転しました。タスク マネージャーを開くと、コア全体が消費されているのがわかりました。この Web サイトは何をしますか? ソース コードに JavaScript のビットコイン マイナーが含まれていますか?

また、Typora 自体にも同様の問題がありますか?

特定の Web サイトやソフトウェアの動作を分析するのに役立つツールはありますか?

答え1

VM でこのサイトにアクセスしようとしたところ、同じ問題が発生しました。Typora Web サイトでは、以下のスクリプトが実行されています。

<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.comaddthisedge.com使用しました。これはドメイン名を IP にマッピングするために使用されるファイルです。これらのドメインをローカルのランダム IP にポイントしました。その後、サイトはスクリプトを見つけることができなくなり、実行に失敗しました。hostsC:\Windows\System32\drivers\etc

addthis.comとは何ですか?保護者それはソーシャル共有トラッカーです。当時使用していた他のサイトからデータを読み取ろうとしていることが分かりました。

これらのサイトをブロックすると、CPU の使用率は正常になります。

答え2

ほとんどの Web ブラウザには、「プロファイラー」と呼ばれる組み込みの開発ツールが付属しています。このツールを使用すると、Web サイトのどの JavaScript 機能がどのくらいの処理時間を消費しているかを特定できます。開発ツールは通常、F12 でアクセスします。

そのウェブサイトでそれを使用すると、答えが確認できます。また処理時間の大部分はスクリプトhttps://s7.addthis.com/js/300/addthis_widget.js(具体的には関数i._handleScroll) によって消費されます。スクリプトは縮小されているため、実際に何をしているのかを詳しく調べる気にはなれません。そのスクリプトがそれほどひどいか、Web サイトの開発者がそのスクリプトを Web サイトに統合したときにミスを犯したかのどちらかです。いずれにせよ、これはあなたが修正する問題ではありません。noscript を使用するか、hosts でドメイン全体をブラックリストに登録することでそのスクリプトをブロックできますが、そうすると Web サイトが正しく機能しなくなる可能性があります。

ちなみに、ウェブサイトが訪問者のCPUパワーを使ってビットコインやその他の暗号通貨を採掘することは実際にあります。私自身もそのようなウェブサイトを見たことがあります。しかし、通常はCPUは使用しません。訪問者のGPUをWebGL APIつまり、GPU ファンは回転し始めますが、タスク マネージャーの CPU 使用率は中程度のままです。GPU の現在の負荷を確認したい場合は、ベンダーの Web サイトを確認してください。ベンダーは、そのような情報を表示するドライバーの付属プログラムを提供していることがよくあります。

答え3

ブラウザによって異なります。Firefoxでは、ノースクリプトそして、そのサイトの JS を選択的にホワイトリストに登録します。おそらく、それは Typora 自体の表示に厳密には必要ない特定の JS リソースです。

Ghostery も Chrome で同じことができるかもしれませんが、その機能についてはあまり経験がありませんが、Noscript よりもはるかに自動化されています。

警告: 私は NoScript が好きですが、少し偏執的になる可能性があり、ホワイトリストに登録するには多くの手助けが必要です。NoScript が利用できない別のブラウザも用意しておくのが最善です。

更新: はい、かなりの負荷がかかります。Firefox は、Mac のアクティビティ モニターで FirefoxCPWebContent を 170% で表示します。これは、サイトの JS がすべて無効になっている場合です。コードに何か大きな間違いがあったようです。そのサブプロセスには、フォントへのオープン ハンドルが多数あります。

結論: NoScript でもこれを修正することはできません。

関連情報