{ function ban() { setInterva" />
0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何禁止人家調(diào)試自己的前端代碼

馬哥Linux運(yùn)維 ? 來(lái)源:馬哥Linux運(yùn)維 ? 2023-08-29 09:31 ? 次閱讀

為啥要禁止?

由于前端頁(yè)面會(huì)調(diào)用很多接口,有些接口會(huì)被別人爬蟲(chóng)分析,破解后獲取數(shù)據(jù)

為了杜絕這種情況,最簡(jiǎn)單的方法就是禁止人家調(diào)試自己的前端代碼

無(wú)限 debugger

前端頁(yè)面防止調(diào)試的方法主要是通過(guò)不斷debugger來(lái)瘋狂輸出斷點(diǎn),因?yàn)閐ebugger在控制臺(tái)被打開(kāi)的時(shí)候就會(huì)執(zhí)行

由于程序被debugger阻止,所以無(wú)法進(jìn)行斷點(diǎn)調(diào)試,所以網(wǎng)頁(yè)的請(qǐng)求也是看不到的

基礎(chǔ)代碼如下:


/** * 基礎(chǔ)禁止調(diào)試代碼 */ (() => { function ban() { setInterval(() => { debugger; }, 50); } try { ban(); } catch (err) { } })();

4c189c0c-45ae-11ee-a2ef-92fbcf53809c.jpg

無(wú)限 debugger 的對(duì)策

如果僅僅是加上面那么簡(jiǎn)單的代碼,對(duì)于一些技術(shù)人員而言作用不大

可以通過(guò)控制臺(tái)中的Deactivate breakpoints按鈕或者使用快捷鍵Ctrl + F8關(guān)閉無(wú)限debugger

這種方式雖然能去掉礙眼的debugger,但是無(wú)法通過(guò)左側(cè)的行號(hào)添加breakpoint

4c3246fc-45ae-11ee-a2ef-92fbcf53809c.jpg

禁止斷點(diǎn)的對(duì)策

如果將setInterval中的代碼寫(xiě)在一行,就能禁止用戶(hù)斷點(diǎn),即使添加logpoint為false也無(wú)用

當(dāng)然即使有些人想到用左下角的格式化代碼,將其變成多行也是沒(méi)用的

(() => {
  function ban() {
    setInterval(() => { debugger; }, 50);
  }
  try {
    ban();
  } catch (err) { }
})();

4c6031b6-45ae-11ee-a2ef-92fbcf53809c.jpg

忽略執(zhí)行的代碼

通過(guò)添加add script ignore list需要忽略執(zhí)行代碼行或文件

也可以達(dá)到禁止無(wú)限debugger

4c7862ea-45ae-11ee-a2ef-92fbcf53809c.jpg

忽略執(zhí)行代碼的對(duì)策

那如何針對(duì)上面操作的惡意用戶(hù)呢

可以通過(guò)將debugger改寫(xiě)成Function("debugger")();的形式來(lái)應(yīng)對(duì)

Function構(gòu)造器生成的debugger會(huì)在每一次執(zhí)行時(shí)開(kāi)啟一個(gè)臨時(shí)js文件

當(dāng)然使用的時(shí)候,為了更加的安全,最好使用加密后的腳本


javascript

復(fù)制代碼

// 加密前 (() => { function ban() { setInterval(() => { Function('debugger')(); }, 50); } try { ban(); } catch (err) { } })(); // 加密后 eval(function(c,g,a,b,d,e){d=String;if(!"".replace(/^/,String)){for(;a--;)e[a]=b[a]||a;b=[function(f){return e[f]}];d=function(){return"w+"};a=1}for(;a--;)b[a]&&(c=c.replace(new RegExp(""+d(a)+"","g"),b[a]));return c}('(()=>{1 0(){2(()=>{3("4")()},5)}6{0()}7(8){}})();',9,9,"block function setInterval Function debugger 50 try catch err".split(" "),0,{}));

4c8c5e9e-45ae-11ee-a2ef-92fbcf53809c.jpg

終極增強(qiáng)防調(diào)試代碼

為了讓自己寫(xiě)出來(lái)的代碼更加的晦澀難懂,需要對(duì)上面的代碼再優(yōu)化一下

將Function('debugger').call()改成(function(){return false;})['constructor']('debugger')['call']();

并且添加條件,當(dāng)窗口外部寬高和內(nèi)部寬高的差值大于一定的值 ,我把body里的內(nèi)容換成指定內(nèi)容

當(dāng)然使用的時(shí)候,為了更加的安全,最好加密后再使用


(() => { function block() { if (window.outerHeight - window.innerHeight > 200 || window.outerWidth - window.innerWidth > 200) { document.body.innerHTML = "檢測(cè)到非法調(diào)試,請(qǐng)關(guān)閉后刷新重試!"; } setInterval(() => { (function () { return false; } ['constructor']('debugger') ['call']()); }, 50); } try { block(); } catch (err) { } })();

4ca65e66-45ae-11ee-a2ef-92fbcf53809c.jpg

審核編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8598

    瀏覽量

    151163
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7030

    瀏覽量

    89038
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3787

    瀏覽量

    81049
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68616

原文標(biāo)題:禁止別人調(diào)試自己的前端頁(yè)面代碼

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙原生應(yīng)用元服務(wù)開(kāi)發(fā)WEB-使用Devtools工具調(diào)試前端頁(yè)面

    ()接口開(kāi)啟Web組件前端頁(yè)面調(diào)試能力,利用DevTools工具可以在PC端調(diào)試移動(dòng)設(shè)備上的前端網(wǎng)頁(yè)。 1.使用DevTools工具,可以執(zhí)行以下步驟: 在應(yīng)用
    發(fā)表于 05-21 15:59

    關(guān)于手機(jī)的TX調(diào)試,急急急

    1,面試的時(shí)候人家總問(wèn)我TX調(diào)試順序問(wèn)題,我覺(jué)得應(yīng)該先從前端基帶調(diào)起,即基帶~PA~雙工器~天線開(kāi)關(guān)~天線。我是這樣想的:因?yàn)?b class='flag-5'>前端的噪聲系數(shù)對(duì)系統(tǒng)影響最大,所以,要從最前面開(kāi)始調(diào)。這樣
    發(fā)表于 05-12 11:08

    為什么STM32會(huì)禁止JTAG調(diào)試功能卻保留SWD下載調(diào)試功能呢

    為什么STM32會(huì)禁止JTAG調(diào)試功能卻保留SWD下載調(diào)試功能呢?
    發(fā)表于 11-25 08:56

    Harmony自定義頁(yè)面請(qǐng)求與前端頁(yè)面調(diào)試

    能力,利用DevTools工具可以在PC端調(diào)試移動(dòng)設(shè)備上的前端網(wǎng)頁(yè)。 使用DevTools工具,可以執(zhí)行以下步驟: 1. 在應(yīng)用代碼中開(kāi)啟Web調(diào)試開(kāi)關(guān),具體如下: //xxx.e
    發(fā)表于 09-20 17:55

    HFC前端到同軸電纜的調(diào)試

    HFC(光纖同軸電纜混合系統(tǒng))按照系統(tǒng)設(shè)計(jì)圖施工、架設(shè)、安裝結(jié)束以后,就要對(duì)整個(gè)系統(tǒng)從前端到同軸電纜進(jìn)行調(diào)試。只有經(jīng)過(guò)調(diào)試后信號(hào)電平達(dá)到設(shè)計(jì)指標(biāo),整個(gè)系統(tǒng)才能
    發(fā)表于 09-26 16:44 ?0次下載

    自己動(dòng)手寫(xiě)前端框架》電子書(shū)

    從入門(mén)菜鳥(niǎo)的角度來(lái)學(xué)習(xí)如何自己寫(xiě)前端框架。可行性高,簡(jiǎn)單易懂,適合入門(mén)學(xué)習(xí)。
    發(fā)表于 03-17 09:53 ?0次下載

    web前端工程師怎樣定位自己

    的指導(dǎo)下,在實(shí)現(xiàn)結(jié)構(gòu)、樣式、行為相分離的基礎(chǔ)上,做到精簡(jiǎn)、重用、有序。讓代碼易于維護(hù)。對(duì)產(chǎn)品的可用性、可訪問(wèn)性、前端性能優(yōu)化進(jìn)行深入的研 究,實(shí)現(xiàn)良好的用戶(hù)體驗(yàn)。
    的頭像 發(fā)表于 09-29 11:05 ?3297次閱讀

    PID算法原理_調(diào)試經(jīng)驗(yàn)以及代碼總結(jié)

    PID算法原理_調(diào)試經(jīng)驗(yàn)以及代碼總結(jié)分享。
    發(fā)表于 05-25 15:59 ?16次下載

    PID算法原理、調(diào)試方法及源代碼

    PID算法原理、調(diào)試方法及源代碼
    發(fā)表于 07-06 10:25 ?17次下載

    PID算法原理、調(diào)試經(jīng)驗(yàn)以及代碼資料

    PID算法原理、調(diào)試經(jīng)驗(yàn)以及代碼資料
    發(fā)表于 11-21 10:25 ?15次下載

    STM32單片機(jī)在調(diào)試時(shí)禁止開(kāi)門(mén)狗IWDG,WWDG

    前言使用cube mx生成的stm工程開(kāi)啟了開(kāi)門(mén)狗,在調(diào)試打斷點(diǎn)時(shí),開(kāi)門(mén)狗會(huì)繼續(xù)計(jì)數(shù),從而對(duì)導(dǎo)致復(fù)位,這個(gè)時(shí)候是沒(méi)法直接禁止開(kāi)門(mén)狗的,如果把cube mx生成的代碼直接修改了,下次使用cube mx
    發(fā)表于 12-23 18:58 ?6次下載
    STM32單片機(jī)在<b class='flag-5'>調(diào)試</b>時(shí)<b class='flag-5'>禁止</b>開(kāi)門(mén)狗IWDG,WWDG

    如何通過(guò)cmm命令設(shè)置調(diào)試映像源代碼路徑

    當(dāng)使用Codeviser調(diào)試系統(tǒng)映像文件時(shí),經(jīng)常遇到映像編譯使用的源代碼路徑和調(diào)試時(shí)使用的源代碼路徑不一致的情況,調(diào)試這樣的映像時(shí),經(jīng)常會(huì)發(fā)
    的頭像 發(fā)表于 11-15 11:07 ?1328次閱讀

    RAA489220 電池前端示例代碼手冊(cè)

    RAA489220 電池前端示例代碼手冊(cè)
    發(fā)表于 01-09 19:17 ?0次下載
    RAA489220 電池<b class='flag-5'>前端</b>示例<b class='flag-5'>代碼</b>手冊(cè)

    RAA489220 電池前端示例代碼手冊(cè)

    RAA489220 電池前端示例代碼手冊(cè)
    發(fā)表于 06-30 19:11 ?0次下載
    RAA489220 電池<b class='flag-5'>前端</b>示例<b class='flag-5'>代碼</b>手冊(cè)

    智能制造行業(yè)--客戶(hù)現(xiàn)場(chǎng)調(diào)試代碼如何防泄密

    我國(guó)近幾年傳統(tǒng)制造向智能制造的轉(zhuǎn)變,很多制造企業(yè)不僅有自己公司的圖紙文件需要保密,企業(yè)的有很多源代碼也需要保密,但是對(duì)于源代碼采用圖紙防泄密的方式是不可取的,源代碼防泄密比圖紙文件防泄
    的頭像 發(fā)表于 01-11 16:27 ?504次閱讀
    智能制造行業(yè)--客戶(hù)現(xiàn)場(chǎng)<b class='flag-5'>調(diào)試</b>源<b class='flag-5'>代碼</b>如何防泄密