Javascript 如果Google chrome开发者工具已经打开,如何以编程方式关闭它?

Javascript 如果Google chrome开发者工具已经打开,如何以编程方式关闭它?,javascript,google-chrome,security,web,google-chrome-devtools,Javascript,Google Chrome,Security,Web,Google Chrome Devtools,我已经在网站上禁用了Google chrome开发者工具。但是,仍然可以使用以下方法访问它 打开另一个网站,比如www.google.com 按F12->开发者控制台将打开 访问我的网站->Bingo chrome开发者工具现在可以玩我的网站了 如何禁用此行为?如果Google chrome开发者控制台已经打开,我如何关闭它 据我所知,这是不可能的 无论如何,最好避免。即使可以找到解决方案,请记住,现在大多数浏览器都允许用户防止Javascript干扰其浏览器设置和window chrome,即

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

  • 打开另一个网站,比如www.google.com
  • 按F12->开发者控制台将打开
  • 访问我的网站->Bingo chrome开发者工具现在可以玩我的网站了

  • 如何禁用此行为?如果Google chrome开发者控制台已经打开,我如何关闭它

    据我所知,这是不可能的

    无论如何,最好避免。即使可以找到解决方案,请记住,现在大多数浏览器都允许用户防止Javascript干扰其浏览器设置和window chrome,即使在使用window.open时也是如此。所以你根本无法保证你所追求的行为

    但是,是的,你们可以防止F12键使用技巧,它可能会对你们有所帮助

    window.oncontextmenu = function () {
       return false;
    }
    document.onkeydown = function (e) { 
        if (window.event.keyCode == 123 ||  e.button==2)    
        return false;
    }
    
    我刚刚测试了这个,它对我有用。。。

    它只是在您的页面上禁用
    右键单击&F12,但无法阻止用户打开
    开发工具菜单>工具>开发工具
    没有可靠的方法阻止客户端修改或查看发送到其浏览器的任何数据。

    我找不到一个合适的理由想要,或者需要禁用诸如chrome中的F12开发者工具之类的工具。只要您正在发送数据,就永远不会有执行此类操作的方法

    让我们假设通过Chrome中的一些bug,或者通过使用javascript,您可以禁用对开发人员工具的访问。太好了!但是,如何防止用户(无论是否恶意)向您的网站发出cURL请求并保存HTML以供以后编辑和查看?没什么

    您应该遵循的实践,而不是有效阻止访问开发人员工具:

  • 假设在任何时候发送到客户端的所有数据都被无限期保存。这也意味着,客户可以在任何时候查看您网站的源数据,以及您曾经存在的所有版本的网站的源数据。即使在客户端失去经过身份验证的访问权限后,也不要发送任何可能在以后使用的敏感信息
  • 假设客户端使用的浏览器可能不符合规定。浏览器可能不会执行或解释您的javascript,甚至可能在最终向最终用户演示之前对其进行修改。 您应该为兼容的浏览器开发网站,同时理解您不能信任客户端的javascript来确定用户是否应该通过页面身份验证,这种处理需要在服务器端进行
  • 确保您网站的所有页面都显示正确的版权和许可条款。如果您担心的是盗用您所有的辛苦工作:而在工作数小时后,让随机用户盗取您网站的设计可能会很烦人。它们可能对您的项目影响不大。但是,明确规定的许可和版权禁止任何为公司或学校项目工作的人使用您的作品,无论是否有学分(取决于许可)

  • 即使有人能够修改你网站的源代码。。那又怎么样?假设你遵循正确的实践和指导原则,这不重要。身份验证和逻辑都是在服务器端处理的,javascript/html应该只用于增强用户的体验,而不是执行关键的逻辑或数据交互。

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

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


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

    我能做的最好的事情就是查看用户是否使用了开发工具。这是我的密码:

    
    var元素=新图像;
    var devtoolsOpen=false;
    元素。_;定义器__;(“id”,函数()){
    devtoolsOpen=true;//这仅在devtools打开时执行。
    });
    setInterval(函数(){
    devtoolsOpen=false;
    控制台日志(元素);
    if(devtoolsOpen==true){
    //如果开发工具处于打开状态,请运行代码
    }//如果要查看开发工具是否未打开,请单击此处
    }, 1000);
    

    每秒钟它都会说用户是否打开了开发工具。

    我想我们不能在银行网站上这么做@a程序员是的,我们不能做任何事情,因为它是一个终端用户浏览器:)。我的意思是我们不能在银行的网站上打开开发工具。如果你把光标放在地址栏上,你仍然可以打开开发工具。@a程序员如BinaryEvolve所解释的,如果你依赖于隐藏发送给客户端的代码,它将无法工作。即使没有开发控制台,获取客户端代码的方法也比您想象的要多。有,有,有,有,有,都是你无法控制的。将重要代码放在服务器上。关闭开发人员工具的目的是什么?一个用例可能是由于用户访问设置而隐藏一些按钮和链接。如果DOM中存在该元素,用户只需继续并启用该链接即可。这是我们想要阻止的。您可以从最初加载到文档中排除元素,然后在用户设置允许访问时请求、追加元素到文档中elements@aProgrammer如果未经授权的用户可以加载任何他们不打算加载的页面,那么很明显,您在什么方面存在缺陷