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

Bra*_*don 60 javascript

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

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

更新:对于那些仍然认为我做出错误假设的人,我确实问了供应商.以下是他们的回答:

以下是一些降低风险的建议:

1)使用javascript Obfuscator对代码进行模糊处理,并仅为已售出的应用程序提供模糊版本; 保持非混淆版本自己进行编辑.这是一个在线混淆器: 我如何模糊(保护)JavaScript? http://en.wikipedia.org/wiki/Obfuscated_code http://javascriptobfuscator.com/default.aspx

2)使用描述性较低的名称; 也许'repeatedtasks.js'而不是'security.js',因为'security.js'可能更能让那些通过这类信息看重要的人更加突出.

Nea*_*eal 96

不,你不能这样做.

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

浏览器开发人员也应该与服务器端数据库代码无关,如果确实如此,则需要进行一些重大的重组.

  • @Brandon**从不**信任客户端的过滤器.**永远不会**(我再说一遍******).无论您在客户端拥有什么,在服务器端进行更多验证**总是**. (49认同)
  • 这个帖子太乱了; 我无法相信我在读什么.您是否处于某种超安全的环境中,除了前端接口之外什么都无法访问?显然不是,因为你在谈论常规浏览器.考虑一下:我可以设置代理服务器并拦截来自我的计算机的所有数据.然后我可以*操纵*和*绕过客户端上的ALL*验证和混淆.我们有服务器是有原因的.这很坚果. (14认同)
  • 让我想象的所有东西都被偷走/擦除成本会更高. (12认同)
  • 我想你需要阅读更多的4D文档.从我所看到的他们的网站,有很多服务器端的东西,包括PHP库. (4认同)
  • @Brandon 什么类型的语言会有这么大的安全漏洞??!! (3认同)
  • @ l46kok没有.这不是一种安全的方法 (2认同)
  • @momomo 去混淆并不像你想象的那么难 (2认同)

Sin*_*ion 52

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

你需要改变你的框架

当您将应用程序放在野外时,您不信任的用户可以访问它; 你必须在沙滩上划一条线.

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

  • 我的意思是我认为有些硬件级别不是你自己的,在大多数情况下是可以信任的——例如云提供商 (2认同)

Lib*_*t0r 24

事实上,这在某种程度上是可能的(如何做facebook-disable-developer-tools),但这对于保护您的数据来说是非常糟糕的主意.攻击者可能总是使用一些你无法控制的其他(开放的,自编写的)引擎.甚至javascript混淆可能只会减慢你的应用程序的一点点破解,但它也几乎没有安全性.

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

  • 请阅读链接的问题,并仔细回答; Facebook使用的技术可以保护无辜的用户免受特定类型的社会工程攻击; 它不保护应用程序免受恶意用户的攻击; 例如,恶意用户可以使用自己的chrome版本和`_commandLineAPI`以及其他一些短语,并且可以完全访问开发人员工具.这些都不会使现有的旧答案无效. (24认同)

sar*_*old 19

你的开发环境决不会让这个大脑死亡.它不可能.

我强烈建议给老板发电子邮件:

  • 培训/学习计划中需要一到两周的时间.
  • 需要与供应商一起提供足够的支持服务单,以确定如何执行服务器端验证.
  • 一个明确的警告,如果该工具无法进行服务器端验证,当您的整个数据库泄露/销毁/等等时,您在华尔街日报的首页上取笑.

  • 虽然也许值得一提的是,如果数据库在办公室附近存储您的午餐选项,谁更喜欢哪些食品推车,以及一些算法来选择适合您聚会中每个人的午餐点,这可能很好.如果数据库包含客户详细信息,那么您别无选择,只能请求供应商教您如何进行服务器端验证 - 如果失败,请确保您的老板知道选择的后果. (7认同)

Jus*_*ner 16

不可以.无法为最终用户禁用开发人员工具.

如果您的应用程序不安全,如果用户可以访问开发人员工具,那么它只是简单不安全.


tra*_*max 11

别忘了像Fiddler这样的工具.即使您锁定了所有浏览器的控制台,即使您使用HTTPS,也可以在客户端上修改http请求.Fiddler可以捕获来自浏览器的请求,用户可以修改它并使用恶意输入重新播放.除非您保护您的AJAX请求,但我不知道如何执行此操作的方法.

只是不要相信从任何浏览器收到的任何输入.

  • 在客户端的机器上完全保护任何东西(AJAX或其他)是不可能的.用户总是可以在中间放置一个TCP代理,并使用他们在自己的机器上安装的自签名证书,服务器将更加明智. (2认同)

Moe*_*oes 9

您无法禁用开发者工具。但是你可能会惹恼任何试图在你的网站上使用开发人员工具的人,尝试一下 JavaScript 代码,代码总是会被破坏。

    (function () {
        (function a() {
            try {
                (function b(i) {
                    if (('' + (i / i)).length !== 1 || i % 20 === 0) {
                        (function () { }).constructor('debugger')()
                    } else {
                        debugger
                    }
                    b(++i)
                }
                )(0)
            } catch (e) {
                setTimeout(a, 5000)
            }
        }
        )()
    }
    )();
Run Code Online (Sandbox Code Playgroud)

  • 按 Ctrl + F8 将禁用断点,因此可以绕过它 (3认同)