代码之家  ›  专栏  ›  技术社区  ›  Khaleel

如何防止最终用户看到通过浏览器控制台进行的网络呼叫

  •  0
  • Khaleel  · 技术社区  · 7 年前

    我需要在所有ajax调用中发送一个特定的头参数,这是一个非常机密的信息。我不希望最终用户看到在任何浏览器的“网络”选项卡中发出的任何请求。有什么办法可以预防吗?或者可以直接从节点服务器进行ajax调用,而不通过浏览器?

    4 回复  |  直到 7 年前
        1
  •  5
  •   Hugo Regibo    7 年前

    在客户端进行的任何通话都不能隐藏,因为这是网站的“客户端”。即使你成功地将其隐藏在浏览器中,任何软件都可以使用网络嗅探器/监视器等工具对其进行监控,例如WireShark。

    所以答案是否定的

        2
  •  2
  •   gargkshitiz    7 年前

    当你去餐馆点东西时,服务员会不会让你忘记上一道菜?答案是否定的,和这个问题的答案一样。

    这一切都始于客户端向服务器发出请求,因此客户端是整个交互的驱动力。服务器只是按照客户机的指示来工作(并且恶意地自己做一些额外的工作,比如审计、数据库更新、添加cookie等等)。

    因此,“服务器”无法限制客户端查看自己的指令。

    只是不要直接通过邮件头发送敏感信息。通过客户端代码对它们进行加密,并将它们添加到cookie或任何其他HTTP头中。

    从互联网上引用:

    客户机/服务器体系结构是生产者/消费者计算 一种体系结构,其中服务器充当生产者,客户端充当生产者 消费者服务器容纳并提供高端计算密集型服务 按需向客户提供服务。这些服务包括 应用程序访问、存储、文件共享、打印机访问和/或 直接访问服务器的原始计算能力。

    当客户端计算机发送 通过网络连接向服务器发送资源或进程请求, 然后处理并交付给客户。服务器计算机 可以同时管理多个客户端,而一个客户端可以 一次连接到多个服务器,每个服务器提供不同的设置 服务业。互联网最简单的形式也是基于 客户机/服务器体系结构,其中web服务器同时为多个服务器提供服务 拥有网站数据的用户。

        3
  •  1
  •   user1016765    7 年前

    永远不要信任客户。曾经从来没有。不管你做什么假设它已经破裂了。黑客拥有所有工具,并完全控制客户机及其上运行的所有软件。假设他们已经编写了自己的网络堆栈、自己的TLS实现、自己的浏览器、自己的操作系统。。。

    如果需要,请保持服务器安全。如果您需要传递“特权”信息(假设您记住,一旦您将其发送给客户机,他们就可以访问它),请不要在服务器上对其进行令牌化,并将令牌发送给他们。如果你正在生成令牌,请确保它们非常随机且完全不透明——不要加密令牌中的任何内容,因为你应该假设它们也可以破解,不管你认为你使用的库有多安全(假设有一天它会被破解)。

        4
  •  0
  •   Nitish Jindal    4 年前

    切勿在客户端公开机密数据。

    1. 最佳做法是在服务器端加密机密数据,将其发送到客户端,然后在客户端将您发送回服务器端时进行解密。

    2. 如果你不想加密,或者这个机密信息是用户行为本身的结果,那么在数据库中创建一个密钥-值对,其中密钥是可以向客户机公开的东西(比如用户名),值是机密信息。因此,现在我们有了1-1映射,所以使用我们从前端获得的密钥在服务器端从数据库中获取这些机密信息。

    我希望这会有所帮助。

    祝你好运