3

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

任何建议将不胜感激。

提前致谢。

4

2 回答 2

1

我认为对您来说最好的解决方案是创建您的区域二维码,指向:

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

如果参数qr的值不是f61060194c9c6763bb63385782aa216f 、731417b947aa548528344fab8e0f29b6df189e7f7c8b89edd05ccc6aec36c36d ,可以忽略它并假设用户不是来自任何二维码。

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

于 2013-10-29T14:17:22.707 回答
0

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

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

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

您可以创建自己的设备或应用程序来扫描二维码。如果您阅读我链接的帖子,您会发现这是浪费时间和资源。

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

于 2013-10-29T08:13:14.013 回答