我已经看到一些关于确保网站访问来自QR代码扫描的问题,但它们似乎专注于分析目的(跟踪流量来自哪里),而我的兴趣在于安全/隐私。
我想设置一个只有在扫描提供的QR码时才能访问的网站。换句话说,我不希望能够通过其他方式手动输入/粘贴QR码所拥有的URL以进行站点访问。
我一直在谷歌搜索这个问题,没有任何运气。我正在尝试通过引用网址或其他方式来考虑通过实际扫描提供的QR码来确保某人到达网站的方式。
编辑:解决方案也需要与扫描仪无关(即我不能强迫用户下载和使用特定的QR扫描仪应用程序)和跨平台(Android + iOS + WinMo + BlackBerry等)。 / p>现在我把这个问题提交给你了。
答案 0 :(得分:2)
我们公司也有同样的东西。我们提供如下链接:
zxing://scan/?ret=http%3A%2F%2Ffoo.com%2Fproducts%2F%7BCODE%7D%2Fdescription&SCAN_FORMATS=UPC_A,EAN_13
其中{CODE}是QRCode中返回的代码。所以你可以做的是创建一个像上面这样的网址(查看链接的更多信息)。然后将加密数据放入QRCode中,因此只有当用户点击此URL并且QRcode的数据正确时才这样。人们可以继续访问您的网站。这样,如果qrcode泄露,他们就不会知道该网站。如果他们知道该网站,则代码已加密。
如果人们通过点击您的网站扫描条形码。 zxing将打开一个带有URL的新浏览器,并且{CODE}填充扫描的代码。
但是,人们确实需要Android或iphone的条形码扫描仪。
更多信息:
答案 1 :(得分:1)
关于您可以做的最好的事情是在QR码中设置查询字符串。类似的东西:
http://www.example.com/myapp
可以更改为:
http://www.example.com/myapp/?qrcode=1
然后可以使用以下代码在PHP中处理:
if(!isset($_GET['qrcode'])) die();
当然,问题在于,任何拥有该网址的人都可以直接在他们的普通网络浏览器中导航到该网址。
然而,这不是你可以阻止的。
您还可以检查$_SERVER['HTTP_USER_AGENT']
是否声称自己是手机。这是关于该主题的another question。
答案 2 :(得分:1)
您无法确保网址来自扫描QR码,这是不可能的。 QR码只是一种编码文本的方法,一旦用户知道文本,他们可以随心所欲地做任何事情。
但是,您可以限制QR码的有用性,即使它被泄露也无济于事。如果可能的话,我会首先使用随机种子按需生成QR码,然后让它们过期。即使二维密码被泄露,也会这样做很长时间没用。
答案 3 :(得分:0)
您可以添加参数,但最终QR码只是一种编码文本的方法,因此如果有人知道编码的内容,您编码的任何内容都可以输入浏览器。
答案 4 :(得分:0)
如果您通过QR码对任何网址进行邮局调用,那么除非用户进入QR扫描模式,否则无论您使用它发送的任何正文,都将无法显示。因此,只需输入网址,用户将无法访问网址内容。