限制网站访问QR扫描仅

问题描述:

我已经看到了一些关于确保网站访问来自QR码扫描的问题,但他们似乎专注于分析目的(追踪流量来自哪里),而我的兴趣是在安全/隐私。限制网站访问QR扫描仅

我想设置一个网站,只有在扫描提供的QR码时才能访问。换句话说,我不希望QR码拥有的URL能够通过其他方式手动输入/粘贴到站点访问中。

我一直googling这个问题有点没有运气。我试图通过引用网址或其他方式来考虑一种方法,通过实际扫描提供的QR码来确保某个人到达该网站。编辑:解决方案也需要独立于扫描仪(即我无法强制用户下载和使用特定的QR扫描仪应用程序)和跨平台(Android + iOS + WinMo + BlackBerry等)。

现在我把问题提交给你美妙的人。

+0

这是不可能的。您可以随时复制网址并分享。 – str 2013-04-22 14:08:26

+0

你不需要参数。取而代之的是,让设备的标题访问网站,并确保它只来自可以扫描QR码的设备:手机,平板电脑等。这基本上就像建立一个移动网站。不是傻瓜证明,但我不认为有这样做的傻瓜证明方式。 – 2013-04-22 14:10:09

+0

@Kacey:电脑与摄像头,... – str 2013-04-22 14:11:21

关于你能做的最好的事情是在你的QR码中设置一个查询字符串。喜欢的东西:

http://www.example.com/myapp 

可改为类似:

http://www.example.com/myapp/?qrcode=1 

然后可以在PHP与处理:

if(!isset($_GET['qrcode'])) die(); 

的问题,这一点,当然,不过,任何拥有该URL的人都可以直接在其普通Web浏览器中直接导航到该URL。

但是这不是你可以预防的。

您还可以检查是否$_SERVER['HTTP_USER_AGENT']声称是手机。这里的主题是another question

+0

HTTP_REFERER能够在这里播放吗?要检查访问者是否(在一定程度上可信度下)直接来自QR扫描仪应用程序或其他网站? – hannebaumsaway 2013-04-22 14:20:33

+0

@praguian'HTTP_REFERER'应该是空白的。所以你总是可以做'if(!empty($ _ SERVER ['HTTP_REFERER')))die();' – 2013-04-22 14:22:55

+0

正是我所指的@DannyBeckett。在你看来,这会是一个可行的解决方案吗?这也是我可以研究自己的事情,但不管怎样,有没有合理/频繁的情况下,即使用户手动将URL粘贴到浏览器中,HTTP_REFERER也可能是空白的?也许在会议开始时呢?试图想一想这种方法可能存在的漏洞。 – hannebaumsaway 2013-04-22 14:33:17

你可以添加参数,但最终QR码只是一种编码文本的方法,所以如果有人知道编码是什么的话,无论你编码如何,都可以输入浏览器。

我们公司也有同样的东西。我们提供了如下链接:

zxing://scan/?ret=http%3A%2F%2Ffoo.com%2Fproducts%2F%7BCODE%7D%2Fdescription&SCAN_FORMATS=UPC_A,EAN_13 

其中{CODE}是在QRCode中返回的代码。所以你可以做的就是创建一个类似于上面的url(更多信息请参阅链接)。然后在QRCode中加入一个加密数据,所以只有当这个URL被用户点击并且QR码的数据是正确的。人们可以继续访问您的网站。这样,如果qrcode被泄露,他们将不知道该网站。如果他们知道该网站,则代码被加密。

如果用户通过点击您的网站扫描条码。 zxing将会打开一个新的浏览器,其URL和{CODE}填充扫描后的代码。

但是,人们确实需要从android或iphone的条码扫描器。

更多信息:

+0

听起来很有希望,尽管我不熟悉斑马线,所以我必须深入研究你提供的研究。谢谢你的回复,你清楚地理解我的问题! – hannebaumsaway 2013-04-22 14:19:26

+0

使用上面的链接制作一个href。下载扫描仪。做一个QRCode,工作不要。点击链接扫描仪将打开并且用户将被重定向到给定的页面。这很简单! 1重要的想法,你不能通过Javascript激活扫描仪。为了安全起见,用户必须手动点击链接。 – Niels 2013-04-22 14:21:24

+1

这是否需要XZing安装在用户的设备上? – 2013-04-22 14:25:05

不能确保URL通过扫描QR码来了,这是不可能的。 QR码只是一种编码文本的方法,一旦用户知道文本,他们就可以随心所欲地做任何事情。

但是,您可以限制QR码的有效性,即使它被泄露也没有用。如果可能的话,我会先用随机种子按需生成QR码,然后在短时间内过期。即使QR码泄漏,这也会使它变得非常有用,但它很长时间不会有用。

如果您正在通过QR码向任何网址发送邮件,则无论您使用何种身份发送邮件,都将无法看到,除非用户通过QR扫描模式。因此,只需输入网址,用户将无法访问网址的内容。