如何确保只有您的javascript才能连接到您的Web服务器

How to ensure only your javascript can connect to your webserver

本文关键字:连接 服务器 Web javascript 确保 只有您 何确保      更新时间:2023-09-26

我们正在考虑将.NET中的一些工具转换为具有web服务风格后端的HTML5。后端本身将完全自定义运行在实现WebSockets的嵌入式硬件上,这意味着我们可以完全控制。

我遇到的问题是,一半的代码将用连接到后端的JavaScript编写。理想情况下,我们希望确保只有"我们"才能做到这一点。我指的是我们页面中托管的JavaScript(从同一个嵌入式Web服务器提供)。

是否有可能阻止任何第三方,或者更具体地说,阻止任何不在我们盒子上的代码调用web服务?

我有一些想法,没有一个是万无一失的,有各种缺点:

  • 确保每个连接的引用地址都是web服务器的引用地址
  • 当页面被提供时,在JS中嵌入一个"种子",JS用来连接到web服务器,就像临时通行证一样。只有具有正确种子的请求才会得到服务

任何关于如何实现这一目标的想法都将是伟大的。我意识到我可能没有一个万无一失的系统,但"接近"的系统是可以接受的。

您试图阻止的被称为CSRF-跨站点请求伪造。

您的第二个想法是,要求客户端在请求标头中提供只有您的web服务器才能生成的令牌,这是抵御此类攻击的常见保护措施。

您永远无法知道哪个代码是从哪里调用您的web服务的-您只收到一个web请求。一切都可以被欺骗。

因此,您需要一些身份验证系统,以便客户能够证明其使用该服务的权利。一个肯定不会公开的"种子"可能会公开。