我有这个项目,我需要知道访客是否合法地从二维码到达。二维码中的 Document.referrer 值显示为空白。我查看了一些建议将参数放入查询字符串(例如?source=qr
)的答案,但是任何人都可以轻松地将参数添加到 URL 中,并且我的代码会认为它来自 QR 码(例如www.project.com/check.page?source=qr
)。我曾考虑添加代码以确保它来自手机/平板电脑作为辅助身份验证方式,但许多浏览器都有附加组件来欺骗网站。
任何建议将不胜感激。
提前致谢。
我有这个项目,我需要知道访客是否合法地从二维码到达。二维码中的 Document.referrer 值显示为空白。我查看了一些建议将参数放入查询字符串(例如?source=qr
)的答案,但是任何人都可以轻松地将参数添加到 URL 中,并且我的代码会认为它来自 QR 码(例如www.project.com/check.page?source=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 ,则可以忽略它并假设用户不是来自任何二维码。
当然,任何用户都可以删除源参数。但至少他不能添加一个有效的,除非他真的可以访问代码。
...但是任何人都可以轻松地将参数添加到 URL 中,我的代码会认为它来自 QR 码
好吧,任何人都可以扫描二维码,查看链接,然后source=qr
从中删除。
数据收集永远不会100% 可靠。用户可以更改浏览器的用户代理、注入一些奇怪值的 cookie、通过代理服务器打开您的页面等等。
您可以创建自己的设备或应用程序来扫描二维码。如果您阅读我链接的帖子,您会发现这是浪费时间和资源。
因此,剩下的就是制定一个适用于大多数用户的解决方案。将参数附加source=qr
到您的 URL 似乎是最简单的解决方案。您还可以链接到一个完全不同的域并重定向请求,这样会更安全。但它永远不会100% 准确。