簡體   English   中英

如果 Google chrome 開發人員工具已經打開,如何以編程方式關閉它?

[英]How to programmatically close Google chrome developer tools if it is already open?

我在網站上禁用了谷歌瀏覽器開發者工具。 但是仍然可以使用以下方法訪問它,

  1. 打開另一個網站說 www.google.com
  2. 按 F12 -> 開發者控制台將打開
  3. 訪問我的網站 -> Bingo chrome 開發者工具現在可以在我的網站上運行。

如何禁用此行為? 如果 Google chrome 開發者控制台已經打開,我該如何關閉它?

沒有可靠的方法可以防止客戶端修改或查看發送到瀏覽器的任何數據。

我找不到合適的理由想要或需要禁用 Chrome 中的 F12 開發人員工具等工具。 只要您正在發送數據,也不會有任何方法來執行這樣的操作。

讓我們假設通過 Chrome 中的一些錯誤,或者通過使用 javascript - 您可以禁用對開發人員工具的訪問。 太好了! 但是,是什么阻止了用戶(無論是否惡意)向您的網站發出 cURL 請求並僅保存 HTML 以供以后編輯和查看? 沒什么!

應該遵循的做法,而不是無效地阻止對開發人員工具的訪問:

  1. 假設發送到客戶端的所有數據在任何時候都被無限期保存 這也意味着客戶可以隨時查看您網站的源數據,包括您網站曾經存在的所有版本。 即使在客戶端失去經過身份驗證的訪問權限后,也不要發送任何可能在以后使用的敏感內容。
  2. 假設客戶端可能正在使用不符合規定的瀏覽器。 瀏覽器可能不會執行或解釋您的 javascript,甚至可能在最終呈現給最終用戶之前對其進行修改。 您應該為兼容的瀏覽器開發您的網站,同時了解您不能信任客戶端的 javascript 來確定用戶是否應該通過頁面身份驗證,這種處理需要在服務器端進行。
  3. 確保您網站的所有頁面都顯示正確的版權和許可條款。 如果您擔心自己的所有辛勤工作被盜用:雖然讓隨機用戶在工作數小時后竊取您網站的設計可能會很煩人。 它們可能對您的項目影響不大。 但是,明確聲明的許可和版權會阻止任何為公司或學校項目工作的人在有或沒有信用的情況下使用您的作品(取決於許可)。

即使有人能夠修改您網站的源代碼......那又怎樣? 假設您遵循正確的做法和准則,這應該無關緊要。 身份驗證和邏輯都是在服務器端處理的,javascript/html 應該只用於增強用戶的體驗——而不是執行關鍵的邏輯或數據交互。

據我所知,這是不可能的

無論如何最好避免。 即使可以找到解決方案,請記住,如今大多數瀏覽器都允許用戶阻止 Javascript 干擾他們的瀏覽器設置和窗口鑲邊,即使在使用 window.open 時也是如此。 所以你絕對沒有辦法保證你正在尋找的行為。

但是是的,您可以使用技巧阻止 F12 鍵它可能對您有幫助..

window.oncontextmenu = function () {
   return false;
}
document.onkeydown = function (e) { 
    if (window.event.keyCode == 123 ||  e.button==2)    
    return false;
}

我剛剛測試了這個並且它對我有用...... http://output.jsbin.com/vayukuqubo

它只是rightclick & F12 on your page禁用禁用rightclick & F12 on your page ,但無法阻止用戶打開Dev Tools Menu > Tools > Developer tools

事實上,您永遠不應該禁用對客戶端工具的控制,以確保您的網站/數據安全。

您無法阻止用戶以一種或其他方式打開開發者控制台,但有一種方法可以阻止用戶進行惡意活動/玩您的網站(非常糟糕但可能)。 詳細的理解和解決方法可以參考這個問題

保護數據的唯一合理方法是在服務器端編寫安全代碼並記住,如果您允許某人下載某些數據,他可以隨心所欲地使用它。

我能做的最好的事情就是查看用戶是否在開發工具中。 這是我的代碼:

<!DOCTYPE html>
<html>
    <body>
        <pre id="output"></pre>
        <script type="text/javascript">
            var element = new Image;
            var devtoolsOpen = false;
            element.__defineGetter__("id", function() {
                devtoolsOpen = true; // This only executes when devtools is open.
            });
            setInterval(function() {
                devtoolsOpen = false;
                console.log(element);
                if (devtoolsOpen == true) {
                    // run code if dev tool are open
                } // else here if you like to see if dev tools are not open
            }, 1000);
        </script>
    </body>
</html>

每一秒它都會說用戶是否打開了開發工具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM