![當我只訪問特定網站時,我的 CPU 整個核心都耗盡了,我該怎麼辦?](https://rvso.com/image/1554888/%E7%95%B6%E6%88%91%E5%8F%AA%E8%A8%AA%E5%95%8F%E7%89%B9%E5%AE%9A%E7%B6%B2%E7%AB%99%E6%99%82%EF%BC%8C%E6%88%91%E7%9A%84%20CPU%20%E6%95%B4%E5%80%8B%E6%A0%B8%E5%BF%83%E9%83%BD%E8%80%97%E7%9B%A1%E4%BA%86%EF%BC%8C%E6%88%91%E8%A9%B2%E6%80%8E%E9%BA%BC%E8%BE%A6%EF%BC%9F.png)
我是一個 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 是什麼?根據守護者它是一個社交共享追蹤器。我發現它試圖從我當時使用的其他網站讀取資料。
封鎖這些網站後,CPU使用率就正常了。
答案2
大多數網頁瀏覽器都附有一個名為「Profiler」的內建開發工具。該工具可用於識別網站的哪些 JavaScript 功能消耗了多少處理時間。通常使用 F12 存取開發工具。
在該網站上使用它可以確認答案再次。大部分處理時間由腳本使用(具體來說,https://s7.addthis.com/js/300/addthis_widget.js
由函數使用)。i._handleScroll
該腳本被縮小了,所以我不想對它實際在做什麼進行更多研究。要么該腳本太糟糕了,要么網站開發人員在將該腳本整合到網站中時犯了錯誤。無論如何,這不是你能解決的。您可以使用 noscript 或將主機中的整個網域列入黑名單來阻止該腳本,但如果您這樣做,該網站可能將無法正常運作。
順便一提:網站利用訪客的處理能力來挖掘比特幣或其他加密貨幣實際上是一件事。我自己也看過這樣的網站。但他們通常不會使用CPU。他們將透過以下方式使用訪客的 GPUWebGL API。這意味著您的 GPU 風扇將開始旋轉,但工作管理員中的 CPU 使用率將保持相當適中。如果您想檢查 GPU 的當前負載,請查看供應商的網站。他們經常為司機提供顯示此類資訊的配套程序。
答案3
取決於您的瀏覽器。在 Firefox 上,您可以安裝無腳本並選擇性地將該網站的 JS 列入白名單,也許它是查看 Typora 本身並不嚴格需要的特定 JS 資源。
Ghostery 或許也能在 Chrome 上做到這一點,儘管我對它所做的事情的經驗要少得多,但它比 Noscript 自動化得多。
警告:我喜歡 NoScript,但它可能會讓事情變得有點偏執,並且您需要對白名單進行大量操作。最好有一個不同的瀏覽器,但它也不可用。
更新:是的,它是一隻大豬。 Firefox 在我的 Mac 活動監視器上顯示 FirefoxCPWebContent 為 170%。這還是在網站的所有 JS 被禁用的情況下。看起來他們把程式碼搞砸了——這個子進程有很多打開的字體句柄。
底線:即使 NoScript 也無法解決這個問題。