日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

有時候不希望用戶去調試或復制前端代碼,那該如何禁止用戶調試前端代碼呢?今天就來分享一個開源的前端工具:Disable Devtool,一行代碼禁用 Web 開發者工具!

功能簡介

disable-devtool 可以禁用一切可以進入開發者工具的方法,阻止通過開發者工具進行的“代碼抓取”。

它具有以下特點:

  • 支持可配置是否禁用右鍵菜單

  • 取消 f12 和 ctrl+shift+i 等快捷鍵

  • 支持識別從瀏覽器菜單欄打開開發者工具并關閉當前頁面

  • 開發者可以繞過拒絕(url參數使用tk配合md5加密)

  • 多種監測模式,支持幾乎所有瀏覽器(IE,360,QQ瀏覽器,FireFox,Chrome,Edge...)

  • 高度可配置、使用極簡、體積緊湊

  • 支持npm引用和腳本標簽引用(屬性配置)

  • 識別真移動端與瀏覽器開發者工具設置插件格式化的移動端,為移動端節省性能

  • 支持識別開發者工具關閉事件

  • 支持可配置是否取消選擇、復制、剪切、粘貼功能

  • 支持識別eruda和vconsole調試工具

  • 支持掛起和恢復支架工作

  • 支持配置ignore屬性,默認自定義控制是否啟用

  • 支持配置 iframe 中所有父頁面的開發者工具禁用

基本使用

推薦使用 npm 進行安裝(使用script腳本會被代理單獨攔截掉從而無法執行),安裝 disable-devtool:


 
 
npm i disable-devtool

基本使用:


 
 
import DisableDevtool from 'disable-devtool';

DisableDevtool(options);

這里的 options 就是配置項。可配置參數如下:


 
 
interface IConfig {
md5?: string; // 繞過禁用的md5值,詳情見3.2,默認不啟用繞過禁用
url?: string; // 關閉頁面失敗時的跳轉頁面,默認值為localhost
tkName?: string; // 繞過禁用時的url參數名稱,默認為 ddtk
ondevtoolopen?(type: DetectorType, next: Function): void; // 開發者面板打開的回調,啟用時url參數無效,type 為監測模式,詳見3.5, next函數是關閉當前窗口
ondevtoolclose?(): void; // 開發者面板關閉的回調
interval?: number; // 定時器的時間間隔 默認200ms
disableMenu?: boolean; // 是否禁用右鍵菜單 默認為true
stopIntervalTime?: number; // 在移動端時取消監視的等待時長
clearIntervalWhenDevOpenTrigger?: boolean; // 是否在觸發之后停止監控 默認為false, 在使用ondevtoolclose時該參數無效
detectors?: Array<DetectorType>; // 啟用的檢測器 檢測器詳情見 3.5 默認為全部,建議使用全部
clearLog?: boolean; // 是否每次都清除log
disableSelect?: boolean; // 是否禁用選擇文本 默認為false
disableCopy?: boolean; // 是否禁用復制 默認為false
disableCut?: boolean; // 是否禁用剪切 默認為false
disablePaste: boolean; // 是否禁用粘貼 默認為false
ignore?: (string|RegExp)[] | null | (()=>boolean); // 某些情況忽略禁用
disableIframeParents?: boolean; // iframe中是否禁用所有父窗口
timeOutUrl?: // 關閉頁面超時跳轉的url;
}

DisableDevtool 的返回值類型如下:


 
 
interface IDDResult {
success: boolean; // 表示是否正常啟用
reason: string; // 未正常啟用的原因
}

Disable-Devtool 有以下監測模式,使用 detectors 定義:


 
 
enum DetectorType {
Unknown = -1,
RegToString = 0, // 根據正則檢測
DefineId, // 根據dom id檢測
Size, // 根據窗口尺寸檢測
DateToString, // 根據Date.toString 檢測
FuncToString, // 根據Function.toString 檢測
Debugger, // 根據斷點檢測,僅在IOS chrome 真機情況下有效
Performance, // 根據log大數據性能檢測
DebugLib, // 檢測第三方調試工具 eruda 和 vconsole
};

ondevtoolopen 事件的回調參數就是被觸發的監測模式。可以在 ondevtoolopen 里執行業務邏輯,比如做數據上報、用戶行為分析等:


 
 
DisableDevtool({
ondevtoolopen(type, next){
alert('Devtool opened with type:' + type);
next();
}
});

那么問題來了,如果把 Devtools 禁用了,那如果線上應用出了問題,作為應用的開發者,也是無法調試的,怎么辦呢?該工具的作者當然想到了這一點,它使用 key 與 md5 配合的方式使開發者可以在線上繞過禁用

使用流程:指定一個 key a(該值不要記錄在代碼中),使用 md5 加密得到一個值 b,將 b 作為 md5 參數傳入,開發者在訪問 url 的時候只需要帶上url參數 ?ddtk=a即可繞過禁用。

disableDevtool對象暴露了 md5 方法,可供開發者加密時使用:


 
 
DisableDevtool.md5('xxx');

 

分享到:
標簽:代碼
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定