安全使用二维码

use*_*676 2 php qr-code

所有,我将使用来自以下 URL 的二维码:http : //qrcode.kaywa.com/

我想使用 URL 选项,因此当有人扫描它时,它们会被发送到我在代码中指定的 URL。我想要类似以下 URL 的内容:http : //www.website.com/web-page/?type= uplights& action=checkout

基于 URL 中的变量,我想允许我的用户插入一些数据。

我知道用户通过扫描 QR 码而不是仅在 URL 中输入该信息来访问此 URL,是否有办法确保这样做?

谢谢!

Ani*_*han 5

简短回答:不是直接的。 二维码的设计目的不是为了保密存储在其中的内容。有人可以使用 QR 阅读器扫描您的 URL,存储它并一遍又一遍地继续使用它,而无需再次扫描它。


我们用来规避这个问题的一种方法是加密我们的 URL,这样我们自己的应用程序(基于ZXing)将是唯一能够读取我们的二维码的应用程序。然后它通过安全通道发送带有随机数的实际请求,这样重放攻击也将变得无用(以防有人嗅探出站连接)。所有其他读者看到加密的 URL,它没有任何用处。

除此之外,没有其他方法可以确保用户确实扫描了您的 QR 并且不输入/粘贴它。


我们实现的方式是:
我们将 URL 存储为http://www.website.com/app.php?<encrypted_string>. 如果有人通过不同的 QR 解码器读取我们的 URL,他们将被带到我们的 app.php 页面,这会促使他们使用我们的应用程序读取 QR。

我们的应用程序本身在遇到该 URL 时会剥离加密的查询字符串,对其进行解密,并形成自己对正确页面的请求。在 PHP 中,您可以在服务器端本身执行该请求,因此它永远不会对用户可见。您可以使用此处详述的 mcrypt进行加密。