如何禁用浏览器开发工具?

我目前正在开发一个Web应用程序,因为它可以访问下面的数据库,所以我需要能够从Firefox,Chrome,Firefox,Internet Explorer和Firefox中的Firebug以及所有类似的应用程序中禁用开发者工具。 有没有办法做到这一点?

注意:由数据库提供的AJAX框架要求给予数据库的任何东西都在可以被修改的web参数中,并且返回的任何东西都可以在JavaScript中处理。 因此,当它返回一个值,例如用户是否可以访问网站的某个部分时,必须使用JavaScript进行处理,然后由开发人员工具访问。 所以这是必需的。

更新:对于那些你仍然在考虑做出错误的假设,我曾问过卖主。 以下是他们的回应:

以下是一些减轻风险的build议:

1)使用JavaScript混淆器来混淆代码,只提供混淆版本和已售出的应用程序; 保持非混淆的版本,以便自己做编辑。 这是一个在线混淆器: 我如何混淆(保护)JavaScript? http://en.wikipedia.org/wiki/Obfuscated_code http://javascriptobfuscator.com/default.aspx

2)使用较less的描述性名称; 可能是“repeatedtasks.js”而不是“security.js”,因为“security.js”可能更多地将任何查看这类信息的人视为重要的东西。

不,你不能这样做

开发人员菜单位于客户端,由用户的浏览器提供。

另外,浏览器开发人员应该与你的服务器端数据库代码无关 ,如果是这样,你需要一些maaaaaajor重组。

如果你的框架要求你在客户端进行授权,那么…

你需要改变你的框架

当你放置一个应用程序时,你不信任的用户可以访问它; 你必须在沙中画一条线。

  • 您拥有的物理硬件; 并可以锁在强大的门后面。 你可以做任何你喜欢的事 这是保存数据库并执行授权function来决定谁可以对数据库执行什么操作的好地方。
  • 其他一切; 包括客户端计算机上的浏览器; 手机; 便利亭位于您办公室的大堂。 你不能相信这些! 永远! 没有什么可以做的,这意味着你可以完全确定,这些机器不是骗你和你的客户出钱。 你不控制它,所以你不能希望知道发生了什么。

事实上,这是可能的( how-does-facebook-disable-developer-tools ),但这对于保护你的数据来说是非常糟糕的主意。 Atacker可能总是使用一些你没有任何控制权的(开放的,自写的)引擎。 即使JavaScript混淆可能只会减缓你的应用程序有点开裂,但它也给了实际上没有安全。

保护数据的唯一合理方法是在服务器端编写安全代码。 请记住,如果你允许某人下载一些数据,他可以随心所欲地做任何事情。

你的开发环境是不可能的。 它不可能。

我强烈build议给你的老板发邮件:

  • 培训/学习时间表需要一周或两周的时间。
  • 需要与供应商提供足够的支持凭单来了解如何执行服务器端validation。
  • 一个明确的警告,如果该工具不能做服务器端validation,当你的整个数据库被泄露/销毁等等,你在“华尔街日报”的头版上获得乐趣。

不可以。为最终用户禁用开发者工具是不可能的。

如果您的应用程序是不安全的,如果用户有权访问开发人员工具,那么它只是普通的不安全。

不要忘记像Fiddler这样的工具。 即使您locking了所有浏览器的控制台,即使您使用HTTPS,也可以在客户端上修改http请求。 提琴手可以捕捉来自浏览器的请求,用户可以修改它,并重新播放恶意input。 除非你保护你的AJAX请求,但我不知道如何做到这一点的方法。

只要不要相信你从任何浏览器收到的任何input。

当时更新(2015年)这个答案发布时,这个技巧是可能的。 现在(2017年)浏览器已经成熟。 以下的技巧不再有效!

是的,这是可能的。 Chrome包含所有控制台代码

 with ((console && console._commandLineAPI) || {}) { <code goes here> } 

…所以网站重新定义了console._commandLineAPI抛出:

 Object.defineProperty(console, '_commandLineAPI', { get : function() { throw 'Nooo!' } }) 

这是主要的窍门!

您可以通过定义这个来轻松禁用开发者工具:

 Object.defineProperty(console, '_commandLineAPI', { get : function() { throw 'Nooo!' } }) 

在这里find它: Facebook如何禁用浏览器的集成开发工具?

布兰登,

你可以做这样的事情,这是一个非常基本的想法,你可以通过这样做覆盖本地代码,这不是你正在寻找的,你从这个发展

 delete window.console console.log('test'); // Noting will work