国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

記錄--如何防止網(wǎng)站信息泄露(復(fù)制/水印/控制臺(tái))

這篇具有很好參考價(jià)值的文章主要介紹了記錄--如何防止網(wǎng)站信息泄露(復(fù)制/水印/控制臺(tái))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

這里給大家分享我在網(wǎng)上總結(jié)出來的一些知識(shí),希望對(duì)大家有所幫助

記錄--如何防止網(wǎng)站信息泄露(復(fù)制/水印/控制臺(tái))

一、前言

中午休息的時(shí)候,閑逛公司內(nèi)網(wǎng),看到一個(gè)url,就想復(fù)制一下url,看看url對(duì)應(yīng)的內(nèi)容是啥,習(xí)慣性使用ctrl+c,然后ctrl+v,最后得到是 禁止復(fù)制,哦,原來是禁用了復(fù)制。這能難倒一個(gè)前端開發(fā)嗎?當(dāng)然不能。于是打開了控制臺(tái),這時(shí),發(fā)現(xiàn)頁面自動(dòng)執(zhí)行了一段立即執(zhí)行函數(shù),函數(shù)體里面是debugger代碼,然后手動(dòng)跳過debugger后,頁面已經(jīng)變成一個(gè)空白頁面了。

本文將簡單講解禁止復(fù)制、水印和禁止打開控制臺(tái)三個(gè)功能點(diǎn)的實(shí)現(xiàn)。

前面幾節(jié)是分功能講解,最后一節(jié)將會(huì)寫出完整的代碼,如何防止網(wǎng)站信息泄露。

二、禁止復(fù)制

現(xiàn)在有的復(fù)制網(wǎng)頁(常規(guī)網(wǎng)頁用戶,不開控制臺(tái)的情況)的內(nèi)容方式有:

  1. 選擇 -> ctrl+c(command + c)
  2. 選擇 -> 鼠標(biāo)右鍵 -> 復(fù)制

js攔截

相比user-select無法做到某一些內(nèi)容可以被選中

document.addEventListener('contextmenu', function(e) {  
    e.preventDefault();  
}, false);  

document.addEventListener('selectstart', function(e) {  
    e.preventDefault();  
}, false);

user-select

不難發(fā)現(xiàn),當(dāng)我們復(fù)制內(nèi)容的時(shí)候,首選是選擇目標(biāo)內(nèi)容,那我們可以禁用用戶的選擇目標(biāo)內(nèi)容。

css屬性u(píng)ser-select用于控制用戶是否能夠選擇(即復(fù)制)文本和其他頁面元素。它的作用是指定用戶在瀏覽網(wǎng)頁時(shí)是否能夠選擇和復(fù)制頁面上的文本和其他元素。

<h3>user-select: none;</h3>
<div style="user-select: none;">我是捌玖,歡迎關(guān)注我喲,這兒是利用css樣式,測試能否禁用復(fù)制</div>
<div style="user-select: none;">哈哈哈,當(dāng)然,這種方式是無效的,我只是玩下</div>

那user-select和pointer-event的區(qū)別是啥? pointer-events? 指定在什么情況下 (如果有) 某個(gè)特定的圖形元素可以成為鼠標(biāo)事件的?target?(en-US)。通俗一點(diǎn)講,例如我們給某個(gè)元素設(shè)置了pointer-events: none,當(dāng)我們點(diǎn)擊這個(gè)元素的時(shí)候,是不會(huì)觸發(fā)click事件,包括我們即使通過鼠標(biāo)也無法選中該元素。
user-select?用于控制用戶是否可以選擇文本。這不會(huì)對(duì)作為瀏覽器用戶界面(即?chrome)的一部分的內(nèi)容加載產(chǎn)生任何影響,除非是在文本框中。

注意:user-select是無法攔截input中的選中(鼠標(biāo)/ctrl+a)

攔截ctrl + a

每個(gè)人(系統(tǒng))使用使用組合鍵進(jìn)行復(fù)制,可能鍵是存在差異的,就拿我電腦是mac,默認(rèn)是command + a為復(fù)制,當(dāng)然是可以修改的,看個(gè)人使用習(xí)慣,所以我們要同時(shí)攔截掉ctrl + a 和 command + a。

document.keyDown = function(event) {
    const {ctrlKey, metaKey, keyCode} = event;
    if((ctrlKey || metaKey) && keyCode === 65) {
        return false;
    }
}

攔截ctrl+c(command + c)

每個(gè)人(系統(tǒng))使用使用組合鍵進(jìn)行復(fù)制,可能鍵是存在差異的,就拿我電腦是mac,默認(rèn)是command + c為復(fù)制,當(dāng)然是可以修改的,看個(gè)人使用習(xí)慣,所以我們要同時(shí)攔截掉ctrl + c 和 command + c的。不可以直接攔截c鍵的輸入,會(huì)影響到input框的輸入

document.keyDown = function(event) {
    const {ctrlKey, metaKey, keyCode} = event;
    if((ctrlKey || metaKey) && keyCode === 67) {
        return false;
    }
}

直接攔截鼠標(biāo)右鍵

該方法直接攔截了右鍵菜單的打開,主要用于攔截圖片的復(fù)制,菜單中的復(fù)制圖片的方法有多種(復(fù)制圖片、復(fù)制圖片地址等),暫時(shí)沒找到合適的方法攔截菜單中具體的某一項(xiàng)。

記錄--如何防止網(wǎng)站信息泄露(復(fù)制/水印/控制臺(tái))

document.oncontextmenu = function(event){
    if(event.srcElement.tagName=="IMG"){
        alert('圖片直接右鍵');
        return false;
    }
};

三、水印

網(wǎng)站水印的主要作用是版權(quán)保護(hù)和網(wǎng)站標(biāo)識(shí)展示。具體來說,它可以在圖片上加上作者的信息或標(biāo)識(shí),防止他人未經(jīng)授權(quán)使用,有助于保護(hù)圖片的版權(quán)安全。同時(shí),它也可以在網(wǎng)頁中展示特定的標(biāo)識(shí)或信息,如網(wǎng)站的名稱、網(wǎng)址、版權(quán)信息等,有助于提高網(wǎng)站的知名度和品牌形象。

此外,網(wǎng)站水印還可以用于追蹤網(wǎng)站的非法使用和侵權(quán)行為。當(dāng)發(fā)現(xiàn)某個(gè)網(wǎng)站上出現(xiàn)了未經(jīng)授權(quán)的水印,就可以通過水印的信息追蹤到該網(wǎng)站的使用者,從而采取相應(yīng)的法律措施。

// 創(chuàng)建Canvas元素  
const canvas = document.createElement('canvas');  
const context = canvas.getContext('2d');  

// 設(shè)置Canvas尺寸和字體樣式  
canvas.width = 100;  
canvas.height = 100;  
context.font = '30px Arial';  
context.fillStyle = 'rgba(0,0,0,0.1)';  

// 繪制文字到Canvas上  
context.fillText('捌玖', 10, 50);  

// 生成水印圖像的URL  
const watermarkUrl = canvas.toDataURL();  

// 在頁面上顯示水印圖像(或進(jìn)行其他操作)  
const divDom = document.createElement('div');
divDom.style.position = 'fixed';
divDom.style.zIndex = '99999';
divDom.style.top = '-10000px';
divDom.style.bottom = '-10000px';
divDom.style.left = '-10000px';
divDom.style.right = '-10000px';
divDom.style.transform = 'rotate(-45deg)';
// 避免對(duì)用戶的交互產(chǎn)生影響
divDom.style.pointerEvents = 'none';
divDom.style.backgroundImage = `url(${watermarkUrl})`;
document.body.appendChild(divDom);

四、禁止打開控制臺(tái)

禁止用戶打開控制臺(tái)

  1. 防止代碼被竊?。涸诳刂婆_(tái)中,用戶可以查看和修改網(wǎng)頁的源代碼,這可能會(huì)導(dǎo)致惡意用戶竊取您的代碼或敏感信息。通過禁止打開控制臺(tái),可以保護(hù)您的代碼和數(shù)據(jù)不被未經(jīng)授權(quán)的用戶訪問或篡改。
  2. 提高安全性:控制臺(tái)是網(wǎng)頁與用戶之間進(jìn)行交互的主要渠道之一,但也是潛在的安全風(fēng)險(xiǎn)之一。惡意用戶可以利用控制臺(tái)執(zhí)行惡意代碼、進(jìn)行釣魚攻擊等。禁止用戶打開控制臺(tái)可以減少這些潛在的安全風(fēng)險(xiǎn)。
  3. 保護(hù)系統(tǒng)資源:在控制臺(tái)中,用戶可以執(zhí)行各種操作,例如創(chuàng)建新文件、刪除文件等,這可能會(huì)對(duì)系統(tǒng)資源造成不必要的占用和破壞。禁止打開控制臺(tái)可以限制用戶的操作范圍,保護(hù)系統(tǒng)資源不被濫用。
  4. 防止誤操作:控制臺(tái)允許用戶進(jìn)行各種操作,但這也增加了誤操作的風(fēng)險(xiǎn)。禁止打開控制臺(tái)可以減少用戶誤操作的可能性,避免不必要的損失和風(fēng)險(xiǎn)。
let firstTime;
let lastTime;
setInterval(() => {
    firstTime = Date.now()
    debugger
    lastTime = Date.now()
    if (lastTime - firstTime > 10) {
        window.location.href = "about:blank";
    }
}, 100)

五、總結(jié)

    // 防止用戶選中
    function disableSelect() {
        // 方式一,js攔截
        // 缺點(diǎn): 無法做到某一些內(nèi)容可以選中        
        document.onselectstart = function(event){
            e.preventDefault();
        };


        // 方式:給body設(shè)置樣式
        document.body.style.userSelect = 'none';


        // 禁用input的ctrl + a
        document.keyDown = function(event) {
            const {ctrlKey, metaKey, keyCode} = event;
            if((ctrlKey || metaKey) && keyCode === 65) {
                return false;
            }
        }
    };

    // 禁用鍵盤的復(fù)制
    function disableCopy() {
        const {ctrlKey, metaKey, keyCode} = event;
        if((ctrlKey || metaKey) && keyCode === 67) {
            return false;
        }
    }

    // 禁止復(fù)制圖片
    function disableCopyImg() {
        document.oncontextmenu = function(event){
            if(event.srcElement.tagName=="IMG"){
                alert('圖片直接右鍵');
                return false;
            }
        };
    };

    // 生成水印
    function generateWatermark(keyword = '捌玖') {
         // 創(chuàng)建Canvas元素  
        const canvas = document.createElement('canvas');  
        const context = canvas.getContext('2d');  
        
        // 設(shè)置Canvas尺寸和字體樣式  
        canvas.width = 100;  
        canvas.height = 100;  
        context.font = '30px Arial';  
        context.fillStyle = 'rgba(0,0,0,0.1)';  
        
        // 繪制文字到Canvas上  
        context.fillText(keyword, 10, 50);  
        
        // 生成水印圖像的URL  
        const watermarkUrl = canvas.toDataURL();  
        
        // 在頁面上顯示水印圖像(或進(jìn)行其他操作)  
        const divDom = document.createElement('div');
        divDom.style.position = 'fixed';
        divDom.style.zIndex = '99999';

        // 因?yàn)閐iv旋轉(zhuǎn)了45度,所以div需要足夠的大
        divDom.style.top = '-10000px';
        divDom.style.bottom = '-10000px';
        divDom.style.left = '-10000px';
        divDom.style.right = '-10000px';
        divDom.style.transform = 'rotate(-45deg)';

        // 防止對(duì)用戶的交互產(chǎn)生影響
        divDom.style.pointerEvents = 'none';
        divDom.style.backgroundImage = `url(${watermarkUrl})`;
        document.body.appendChild(divDom);
    }

    // 禁止打開控制臺(tái)
    function disbaleConsole() {
        let firstTime
        let lastTime
        setInterval(() => {
            firstTime = Date.now()
            debugger
            lastTime = Date.now()
            if (lastTime - firstTime > 10) {
                window.location.href = "about:blank";
            }
        }, 100);
    }

    disableSelect();
    disableCopy();
    disableCopyImg();
    generateWatermark();
    disbaleConsole();

本文轉(zhuǎn)載于:

https://juejin.cn/post/7292416512333332534

如果對(duì)您有所幫助,歡迎您點(diǎn)個(gè)關(guān)注,我會(huì)定時(shí)更新技術(shù)文檔,大家一起討論學(xué)習(xí),一起進(jìn)步。

?記錄--如何防止網(wǎng)站信息泄露(復(fù)制/水印/控制臺(tái))文章來源地址http://www.zghlxwxcb.cn/news/detail-776844.html

到了這里,關(guān)于記錄--如何防止網(wǎng)站信息泄露(復(fù)制/水印/控制臺(tái))的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 如何防止U盤復(fù)制電腦文件?

    如何防止U盤復(fù)制電腦文件?

    在我們的工作中,經(jīng)常需要將重要的文件存在電腦中,我們必須要妥善的保護(hù)這些重要數(shù)據(jù),那么該如何防止U盤復(fù)制電腦中的文件呢? 要想防止U盤復(fù)制電腦文件,可從三個(gè)方面入手,分別是: 禁止電腦使用USB存儲(chǔ)設(shè)備或只讀USB存儲(chǔ)設(shè)備; 文件數(shù)據(jù)禁止移動(dòng)和復(fù)制; 將存放

    2024年02月08日
    瀏覽(15)
  • 一、CTF-Web-信息泄露(記錄CTF學(xué)習(xí))

    目錄 1.源碼泄露? 1-1.頁面源代碼泄露? 1-2.敏感文件泄露 ???????1-2-1.備份(.swp/.bak/.beifen/~/phps等) ???????1-2-2.數(shù)據(jù)庫(mdb) ???? ??1-2-3.壓縮包(zip/tar.gz/rar/7z等) ???????1-2-4.路徑(.git/.svn/.hg/.DS_Store/WEBINF/web.xml/cvs/Bazaar/bzr) ?????2.robots.txt泄露 ?????3.404頁面泄露

    2024年02月06日
    瀏覽(22)
  • 網(wǎng)站服務(wù)器 如何防止惡意爬蟲抓取

    惡意的蜘蛛行為不光會(huì)造成服務(wù)器的壓力,并且對(duì)seo沒有實(shí)質(zhì)性用處,下面就拿SemrushBot蜘蛛為例來說明如何防止惡意爬取 SemrushBot蜘蛛爬蟲UA:\\\"Mozilla/5.0 (compatible; SemrushBot/6~bl; +http://www.semrush.com/bot.html)\\\" 1、SemrushBot蜘蛛抓取過多增加網(wǎng)站服務(wù)器負(fù)擔(dān) 2、SemrushBot不會(huì)給網(wǎng)站帶來實(shí)

    2023年04月10日
    瀏覽(28)
  • 詳解如何防止dede網(wǎng)站DDos被攻擊

    第一步:進(jìn)入后臺(tái),系統(tǒng)-》添加新變量變量名稱:cfg_anquan_cc 變量類型:布爾(Y/N) 參數(shù)說明:是否開啟防CC攻擊: 變量值:Y 第二步:編輯,/member/config.php 在require_once(DEDEINC.\\\'/dedetemplate.class.php\\\');下添加代碼 以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多

    2024年02月02日
    瀏覽(23)
  • HTTP劫持是什么?如何防止網(wǎng)站被劫持呢?

    HTTP劫持是什么?如何防止網(wǎng)站被劫持呢?

    HTTP劫持(HTTP hijacking)是一種網(wǎng)絡(luò)攻擊技術(shù),攻擊者通過各種手段截取用戶的HTTP請求或響應(yīng),篡改其內(nèi)容或重定向到惡意服務(wù)器,從而實(shí)施惡意活動(dòng)。這種攻擊可能導(dǎo)致用戶信息泄露、身份盜竊、篡改網(wǎng)頁內(nèi)容或植入惡意代碼等安全問題。 為了保護(hù)網(wǎng)站免受HTTP劫持的威脅,

    2024年02月08日
    瀏覽(23)
  • 如何防止機(jī)器人或者爬蟲訪問自己的網(wǎng)站

    在網(wǎng)站的robots.txt文件中設(shè)置禁止機(jī)器人訪問的頁面或目錄。 Robots.txt是一個(gè)文本文件,用于告訴搜索引擎哪些頁面或目錄不應(yīng)該被訪問??梢酝ㄟ^在robots.txt文件中添加\\\"Disallow\\\"指令來告訴機(jī)器人禁止訪問某些頁面或目錄。例如: 上述例子中,我們禁止了所有機(jī)器人訪問/admin

    2024年02月12日
    瀏覽(25)
  • PDF添加水印以及防止被刪除、防止編輯與打印

    PDF添加水印以及防止被刪除、防止編輯與打印

    方法記錄如下: 1、添加水??; 2、打印輸出成一個(gè)新的pdf; 3、將pdf頁面輸出成一張張的圖片:(福昕pdf操作步驟如下) 4、將圖片組裝成一個(gè)新的pdf:(福昕pdf操作步驟如下) ?5、對(duì)新生成的pdf設(shè)置權(quán)限: 打開Adobe Acrobat Pro,保護(hù)--使用密碼進(jìn)行保護(hù),設(shè)置密碼??舍槍?duì)查

    2024年02月15日
    瀏覽(20)
  • 被通報(bào)?被下架?用戶信息被泄露?APP安全合規(guī)風(fēng)險(xiǎn)該如何防范?

    前段時(shí)間,一個(gè)資訊類APP(以下稱“某APP”)的負(fù)責(zé)人急匆匆找到網(wǎng)安云,直言其負(fù)責(zé)的APP最近收到很多用戶投訴,說他們的信息被泄露了,屢遭電銷騷擾。由于電銷太過猖狂,導(dǎo)致很多用戶都到應(yīng)用市場給他們發(fā)差評(píng),對(duì)品牌形象塑造和業(yè)務(wù)發(fā)展影響極大! ? 同時(shí),他們也

    2024年02月05日
    瀏覽(21)
  • 如何防止別人蹭wifi 隱藏你的無線路由器信息的設(shè)置方法介紹

    如何防止別人蹭wifi?蹭網(wǎng)不但會(huì)影響你的上網(wǎng)速度,甚至?xí)孤┠愕膫€(gè)人隱私。因此對(duì)于wifi使用者來說,光給無線路由器設(shè)置密碼是不夠的,要徹底的阻止偷網(wǎng),最好還是要能夠把路由器設(shè)置成隱藏,讓別人搜索不到你的無線信號(hào)。如果想要上網(wǎng)只能通過添加無線網(wǎng)絡(luò)信號(hào)

    2024年02月06日
    瀏覽(27)
  • 基于數(shù)據(jù)的安全與隱私保護(hù):保護(hù)企業(yè)敏感數(shù)據(jù),防止數(shù)據(jù)泄露

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 數(shù)據(jù)安全和數(shù)據(jù)隱私一直是企業(yè)最關(guān)注的問題之一。隨著社會(huì)數(shù)據(jù)越來越多、使用越來越頻繁,企業(yè)對(duì)數(shù)據(jù)安全和隱私保護(hù)越來越重視。在電子商務(wù)和互聯(lián)網(wǎng)金融等新時(shí)代,傳統(tǒng)的數(shù)據(jù)安全和隱私保護(hù)方法已經(jīng)無法適應(yīng)企業(yè)的需求,更需要新的

    2024年02月10日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包