确认来源是来自QR码扫描

时间:2013-10-28 04:59:19

标签: authentication mobile qr-code

我有这个项目,我需要知道访客是否合法地从QR码到达。 QR码中的Document.referrer值显示为空白。我已经查看了一些建议将参数放在查询字符串中的答案(例如?source=qr),但是任何人都可以轻松地将参数添加到URL中,我的代码会认为它来自QR码(例如{{1} })。我曾想过添加代码以确保它是从手机/平板电脑作为验证的第二种方式,但许多浏览器都有附加组件来欺骗网站。

任何建议都将不胜感激。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我认为最适合您的解决方案是创建指向以下区域的QR码:

Region 1)  http://example.com/?qr=f61060194c9c6763bb63385782aa216f
Region 2)  http://example.com/?qr=731417b947aa548528344fab8e0f29b6
Region 3)  http://example.com/?qr=df189e7f7c8b89edd05ccc6aec36c36d

如果参数 qr 的值 f61060194c9c6763bb63385782aa216f 以外的任何 731417b947aa548528344fab8e0f29b6 df189e7f7c8b89edd05ccc6aec36c36d ,那么您可以忽略它并假设用户没有来自任何QR码。

当然,任何用户都可以删除 source 参数。但至少他不能添加一个有效的,除非他真的可以访问代码。

答案 1 :(得分:0)

  

...但是任何人都可以轻松地将参数添加到URL中,我的代码会认为它来自QR码

好吧,任何人都可以扫描二维码,查看链接,并从中删除source=qr

数据收集从不 100%可靠。用户可以更改浏览器的用户代理,使用一些奇怪的值注入cookie,通过代理服务器打开页面等等。

您可以create your own device或App扫描QR码。如果您阅读我链接的帖子,您会发现这是浪费时间和资源。

所以,剩下的就是制定一个适用于大多数用户的解决方案。在您的网址中附加source=qr参数似乎是最简单的解决方案。您还可以链接到完全不同的域并重定向请求,因此它更具欺诈性。但它永远不会 100%准确。