【问题标题】:Connecting to RFID reader using web application使用 Web 应用程序连接到 RFID 阅读器
【发布时间】:2019-12-09 12:36:11
【问题描述】:

我们最近购买了用于文档跟踪的 RFID 阅读器。它带有一个用 C# 编写的演示软件。

是否可以使用 Web 应用程序访问和控制 RFID 阅读器?

【问题讨论】:

  • 是的,您可以这样做,您使用的是哪种 RFID 阅读器?大多数RFID阅读器提供SDK来控制阅读器以及执行标签操作。您的 Web 界面将提出通过 Web API 与 RFID 阅读器通信的请求(Web API 将托管在 Web 服务器上并通过 TCPIP 连接到阅读器)。 Web API 将向连接的阅读器发送所需的命令。 Web API 将使用提供的 SDK 与阅读器对话。
  • 谢谢穆克什。我昨天确实弄明白了!

标签: rfid


【解决方案1】:

是否可以使用 Web 应用程序访问和控制 RFID 阅读器?

不是直接的,因为那将是对网络安全的大规模破坏。网络浏览器不遗余力地将网站与系统隔离开来(WebUSB 等严重可疑的东西无法承受)。

通常的做法是让小型网络服务器与 RFID 阅读器通信并提供基于 HTTP 的 API。当然,这样做需要Cross Origin Resource Sharing

您可能犯的最大错误是创建一个像 local-rfid.yourorg.example.com 这样的 DNS 条目并将其映射到 127.x.x.x 和/或 ::1 以便为该域获得可签名的 TLS 证书。问题是,您必须将私钥与您的 RFID 接口程序一起发送,并且该密钥可能会被泄露,这将使使用该密钥的任意软件能够使用您的 DNS 条目来破坏 HTTPS 会话。 所以不要那样做!

正确的方法是访问localhost 域下的 RFID 阅读器(CORS 不需要 TLS),并且对于 Web 应用程序,您希望能够使用HTTP 标头,像这样指定服务

Access-Control-Allow-Origin: http://localhost:3000

同样重要使用一些 Web 身份验证方案(如 OAuth2 等)来针对 RFID 读取器服务对基于浏览器的应用程序进行身份验证,即当向 RFID 读取器发出请求时创建服务,将会话令牌传递给它(通过 cookie 或请求标头),然后让 RFID 读取器服务检查您的应用程序服务器,如果该令牌有效。

【讨论】:

    【解决方案2】:

    如果 RFID 是指 NFC,您可能会发现此 API 很有帮助:https://w3c.github.io/web-nfc/

    在我看来,这是一项在成为标准之前正在进行的工作。

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多