限制网站访问QR扫描仅
Restrict site access to QR scans only
我已经看到了一些关于确保网站访问来自QR码扫描的问题,但他们似乎专注于分析目的(跟踪流量来自哪里),而我的兴趣是安全/隐私。
我想建立一个网站,只有当提供的QR码被扫描时才能访问。换句话说,我不希望QR码拥有的URL能够通过其他方式手动输入/粘贴到网站访问。
我一直在谷歌这个问题一点,没有任何运气。我正在考虑一种方法,通过引用url或其他方式,以确保一个人通过实际扫描提供的QR码到达网站。
编辑:解决方案也需要与扫描仪无关(即我不能强迫用户下载和使用特定的QR扫描仪应用程序)和跨平台(Android + iOS + WinMo +黑莓等)。
现在我把问题提交给你们这些了不起的人。
我们公司也有同样的情况。我们提供如下链接:
zxing://scan/?ret=http%3A%2F%2Ffoo.com%2Fproducts%2F%7BCODE%7D%2Fdescription&SCAN_FORMATS=UPC_A,EAN_13
其中{CODE}是QRCode中返回的代码。所以你能做的就是像上面那样创建一个url(更多信息参见链接)。然后在QRCode中放入一个加密的数据,所以只有当用户点击这个url时,QRCode的数据才正确。人们可以继续访问你的网站。这样的话,如果qr码泄露了,他们也不会知道这个网站。如果他们知道地址,代码就被加密了。
如果人们通过点击你的网站扫描条形码。zxing将打开一个新的浏览器,其中包含URL和填满扫描代码的{CODE}。
但是,人们确实需要android或iphone的条形码扫描器。
更多信息:
- zxing download/主页
- zXing扫描从w
您无法确保URL来自扫描QR码,这是不可能的。QR码只是一种编码文本的方法,一旦用户知道了文本,他们就可以对其进行任何操作。
然而,你可以限制QR码的有用性,所以即使它被泄露了,它也没有用。如果可能的话,我会先用随机种子按需生成QR码,然后让它们很快过期。这样一来,即使QR码被泄露,它也不会很长时间有用。最好是在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']
是否声称是手机。这是关于这个话题的另一个问题。
你可以添加参数,但最终QR码只是一种编码文本的方法,所以无论你编码什么,只要有人知道编码的内容,就可以在浏览器中输入。
如果你通过QR码对任何web URL进行post call,那么无论你发送的是什么,除非用户通过QR扫描模式,否则都是不可见的。因此,仅通过输入Web URL用户将无法访问Web URL内容。
- 显示使用jquery mobile扫描数据角色=页面上的条形码
- 使用方法将扫描的项目添加到总数中
- 用Javascript重新扫描图像
- 如何阻止Netbeans扫描某个文件夹
- 使用webqr和getusermedia脚本扫描二维码
- 如果端口范围太宽,节点中的端口扫描不起作用
- DynamoDB中的扫描函数,保留关键字为FilterExpression NodeJS
- 扫描具有相同命名和插入值的所有数据属性-jQuery
- Html 5 Qr读码器中的问题
- 我想使用replace函数扫描json对象,然后用字符串替换匹配的单词
- 节点画布:将PNG文件输出为交错/逐行扫描
- 有没有办法通过网络摄像头直接将二维码扫描到网页中
- 自动扫描和聚焦HTML页面的元素
- Ng模型和iOS信用卡扫描
- 是否可以将扫描作为转换器来实现
- 使用QR图像的学生考勤系统包含学生ID
- 单页 JavaScript 应用程序的可访问性/安全扫描程序
- Javascript 中的图像裁剪和转换 - 扫描应用程序
- 从节点.js中扫描的图像中评估复选框
- 限制网站访问QR扫描仅