分析某個網站時候,比較詭異,打開console 時候,這樣:
網站被一塊“遮罩”擋住了,處于調試狀態,不能繼續交互,跟下原因,這樣的代碼:
function isConsoleOpen() {
var startTime = new Date();
debugger ;var endTime = new Date();
return endTime - startTime > 100;
}
setInterval(()=>{
if (isConsoleOpen()) {
window.location.href = '';
}
}
, 400);
該站的某個js 腳本,設置了定時器,定時在檢測,如果console 是打開狀態,則把調試狀態打開windows.location 設置為"",判斷是否打開console 邏輯為插入debuger,debuger 前后計算時間差是否大于一定時間。
這設置是防君子不防小人了,最多防防小白而已,沒有太大的意義。會打開console的開發者,難道不會繞過這個限制?
右鍵這個debuger,在彈出菜單點擊“add script to ignore list”
如果檢測出邏輯是在定時器內執行的,直接把頁面的所有定時器都關閉。for (let i = 1; i < 99999; i++) window.clearInterval(i);
這個方法有個缺點,如果某些網頁可能會在外面重新加載一下js,會重新開啟定時器,所以不一定每次都能設置成功。禁止廣告的插件較多,使用類似Adblock Plus這樣的 禁廣告插件,把這個js 文件加入過濾列表即可,Adblock Plus設置如下:配置后,這個頁面會被插件禁止掉,刷新下頁面可以完美交互。如下也可以看到該腳本被插件禁止掉了。方案4:使用Fiddler、Burpsuite 對js 文件進行攔截(修改)缺點,Fiddler mac版本不太好用,Burpsuite是收費軟件。總之,對于這種功能的繞過方法很多,最省時省力就是用方法1了,第三方工具或者插件都不用裝,點擊幾下鼠標,搞定。
該文章在 2023/11/28 11:49:33 編輯過