如果已经打开,如何以编程方式关闭Google Chrome开发人员工具?

时间:2016-08-24 11:23:49

标签: javascript google-chrome security web google-chrome-devtools

我在网站上停用了Google Chrome开发者工具。但是,仍然可以使用以下方法访问它,

  1. 打开另一个网站www.google.com
  2. 按F12 - >开发者控制台将打开
  3. 访问我的网站 - > Bingo chrome开发人员工具现在可以与我的网站一起玩。
  4. 如何禁用此行为?如果Google Chrome开发者控制台已经打开,我如何关闭它?

4 个答案:

答案 0 :(得分:8)

没有可靠的方式来阻止客户端修改或查看发送到浏览器的任何数据。

我无法找到合适的理由,或者需要禁用Chrome中的F12开发者工具等工具。只要你发送数据,也不会有办法执行这样的操作。

让我们假设Chrome中的一些错误,或者使用javascript-您可以禁用对开发人员工具的访问权限。太棒了!但是,是什么阻止了恶意与否的用户向您的网站发出cURL请求,只是保存HTML以便以后编辑和查看?没有!

遵循的做法,而不是无效地阻止访问开发者工具:

  1. 假设发送到客户端的所有数据在任何时候都无限期保存。这也意味着客户可以随时查看您网站的源数据,以及您网站上曾存在的所有版本。即使在客户端失去经过身份验证的访问权限之后,也不要发送任何可能在以后使用的敏感内容。
  2. 假设客户端可能正在使用不遵守法规的浏览器。浏览器可能无法执行或解释您的javascript,甚至可能在最终用户呈现给最终用户之前对其进行修改。 您应该为兼容的浏览器开发您的网站,同时了解您不能信任客户端的javascript来确定用户是否应该对某个页面进行身份验证,这种处理需要发生在服务器端。
  3. 确保您网站的所有网页都显示正确的版权和许可条款。如果您担心自己的所有辛苦工作被盗:虽然让随机用户窃取您的网站可能会很烦人。 ;经过数小时的工作后设计。它们可能对您的项目影响不大。但是,明确规定的许可和版权可以防止任何在公司或学校项目中工作的人使用或不使用您的工作(取决于许可)。
  4. 即使有人能够修改您网站的源代码,那又怎么样?假设您遵循正确的做法和指导方针并不重要。身份验证和逻辑都在服务器端处理,javascript / html只应用于增强用户的体验 - 不执行关键逻辑或数据交互。

答案 1 :(得分:3)

据我所知,这是不可能的

无论如何,最好避免使用。即使可以找到解决方案,请记住,现在大多数浏览器都允许用户阻止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,但无法阻止用户打开Dev Tools Menu > Tools > Developer tools

答案 2 :(得分:2)

事实上,您永远不应禁用对客户端工具的控制,以确保您的网站/数据安全。

您无法阻止用户以一种或另一种方式打开开发者控制台,但有一种方法可以阻止用户进行恶意活动/玩您的网站(非常糟糕但可能)。您可以参考this question获取详细的理解和解决方案。

保护数据的唯一合理方法是在服务器端编写安全代码,并记住,如果您允许某人下载某些数据,他可以随心所欲地使用它。

答案 3 :(得分:0)

我能做的最好的就是看用户是否在开发工具中。这是我的代码:

<!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>

每秒都会显示用户是否打开了开发工具。