自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何防止用戶打開瀏覽器開發(fā)者工具,查看源碼?

開發(fā) 前端
首先是給代碼加 Debugger。Debugger 是 JavaScript 中的關(guān)鍵字,用于在代碼中設(shè)置斷點。

大家好,我是前端西瓜哥。

作為一名前端開發(fā),在瀏覽一些網(wǎng)頁時,有時會在意一些交互效果的實現(xiàn),會打開開發(fā)者工具查看源碼實現(xiàn)。

但有些網(wǎng)站做了防窺探處理,打開開發(fā)者工具后,會無法再正常進行網(wǎng)頁的操作。

它是怎么做到的呢?

debugger

首先是給代碼加 debugger。

debugger 是 JavaScript 中的關(guān)鍵字,用于在代碼中設(shè)置斷點。

在代碼執(zhí)行到 debugger 所在位置時會停止,此時上下文還保留著。此時我們可以查看一些變量的值,以及一點點地往下執(zhí)行,看看是否進入正確的條件分支、變量是否正確等。

但前提是已經(jīng)打開了開發(fā)者工具。

所以我們用一個定時器不停地執(zhí)行 debugger 就行。

setInterval(() => {
debugger;
}, 4000);

如果用戶不打開開發(fā)者工具,debugger 會被瀏覽器忽略。

如果打開了,就會正常執(zhí)行 debugger 給你的頁面打一個斷點,導致你無法操作頁面。即使你跳過,因為定時器的存在,等下還會給你打上斷點。

考慮到定時器不停執(zhí)行可能會影響性能,所以不要設(shè)置太短,4s 應(yīng)該差不多。

一個使用了該方案的動漫網(wǎng)站。

圖片

函數(shù)調(diào)用棧的始端使用了 setInterval 定時器。

圖片

發(fā)現(xiàn)一個有趣的點,就是我用蘋果筆記本打開開發(fā)者工具,再關(guān)閉后,光標會變成默認樣式,并再也無法改變光標樣式了。大概是瀏覽器的 bug?不知道有沒有讀者知道是為什么。

結(jié)尾

這是一個比較簡單的方案。另外推薦看看 disable-devtool 庫,支持比較多的配置,也可以看看它是怎么檢測用戶打開開發(fā)者工具行為的發(fā)生的。

責任編輯:姜華 來源: 前端西瓜哥
相關(guān)推薦

2015-10-30 09:32:49

Firebug開發(fā)者工具火狐瀏覽器

2022-07-08 15:01:40

工具瀏覽器

2021-08-14 18:00:04

谷歌Chrome瀏覽器

2014-11-11 15:01:04

FirefoxMozilla

2013-03-19 14:28:24

Firefox瀏覽器

2011-07-01 13:11:22

Web

2022-01-19 19:49:53

Sentry瀏覽器SDK

2024-07-25 14:40:35

瀏覽器插件Vimium C瀏覽器

2024-02-01 09:44:58

無頭瀏覽器網(wǎng)絡(luò)瀏覽器GUI

2016-11-16 09:41:42

Windows 10Edge瀏覽器

2019-05-27 14:09:44

開發(fā)者技能工具

2015-04-09 14:13:27

JavaScriptWin10斯巴達瀏覽器

2012-05-30 15:14:11

ibmdw

2024-08-26 08:14:00

2011-12-06 09:11:01

HTML 5

2012-02-23 12:18:55

移動瀏覽器StatCounter51CTO移動開發(fā)頻道

2009-06-08 10:39:24

MacGoogleChrome

2012-03-26 13:22:13

百度開發(fā)者大會海豚瀏覽器劉鐵峰

2025-03-14 08:21:09

Puppeteer.NET開發(fā)者

2016-03-25 09:29:24

Apple開發(fā)工具開發(fā)者
點贊
收藏

51CTO技術(shù)棧公眾號