沒想到用了一段小程式解決了網頁效能問題
!function(){ (Plurk Paste)
!function(){ (Plurk Paste)
被我植入腳本的網站是一個政府的網站,但是我自己寫的機器人很依賴用開發者工具的視窗輸出訊息,但網站的程式碼又會拼命調用 debugger
後來研究了一下,發現他調用 debugger 是透過 Function() ,所以我直接搶在網頁載入時就把 Function() 給替換掉了。
現在只要是純粹執行 debugger 的一律都會被無視
現在只要是純粹執行 debugger 的一律都會被無視
另外我還稍微查了一下,每個 webkit 檢測開發者工具是否啟動的方法都不太一樣,而且大多都是利用....漏洞?
總之 webkit 本身沒有提供檢測開發者工具啟動與否的方法,而 chrome 也沒有
總之 webkit 本身沒有提供檢測開發者工具啟動與否的方法,而 chrome 也沒有
所以有些網站的反制手段是不斷的調用 debugger,但這種做法的缺點是硬體配備太差的用戶體驗會變差
雖然成功阻止其他人對程式做進一步分析與變數修改,畢竟開發工具要嘛停用,不然就要啟用所有的 breakpoint
另外為什麼我要直接改寫 Function()
因為網站上的腳本已經經過打亂,而開發者工具剛好可以阻止來自特定檔案中的 debugger 敘述。為了避免 debugger 被忽略,所以會調用 eval() 或 Function(),此時會產生一個匿名 function。
因為網站上的腳本已經經過打亂,而開發者工具剛好可以阻止來自特定檔案中的 debugger 敘述。為了避免 debugger 被忽略,所以會調用 eval() 或 Function(),此時會產生一個匿名 function。
原本的程式碼裡面基本沒辦法直接找到 "debugger",但他們大概沒想過輸入到 Function() 裡的變數就會直接現出原形