我正在开发一个移动web应用程序,人们可以通过扫描某个位置的二维码来“签到”(在某种意义上),它会指向某个URL,如果用户登录到手机应用程序中,那么他们的出勤就会被记录下来。代码将使用PHP库(每个位置不同的二维码/ URL )生成。
我担心的是,当用户扫描代码时,他们会在浏览器中看到URL,并且不需要扫描就可以手动输入。
有没有人有办法防止这种情况发生?这将是一个移动web应用程序,而不是市场上的混合应用程序(阅读:无PhoneGap)
发布于 2014-03-29 09:18:37
我一直在使用Dominik Dzienia的PHP二维码编码器。
http://phpqrcode.sourceforge.net/
示例:
include('qr/qrlib.php');
$text = 'my text';
QRcode::png($text);
echo $text;发布于 2014-03-29 09:46:16
我猜一种可能性是某种基本的加密形式。
创建一个包含一些随机字符串的隐藏输入
<?php
$rnd=md5(rand());
session_start();
$_SESSION['rnd']=$rnd;
?>
<input type="hidden" value="<?php echo $rnd; ?>">用http://www.myersdaily.org/joseph/javascript/md5-text.html在javascript中用二维码md5隐藏输入,并将结果和二维码一起返回。
然后在服务器端,你可以用相同的随机字符串md5返回的二维码,并检查结果是否匹配。如果是这样的话,你会给用户一个肯定的结果。
因为随机字符串在每次页面加载时都会发生变化,所以没有办法欺骗它
发布于 2014-03-31 03:01:46
您所描述的情况最好通过HTACCESS文件来处理,而不是通过PHP方法。在使用HTACCESS文件时,您可以利用MOD_REWRITE消除URL后面的尾随信息,例如会话变量或其他信息(文件名和扩展名-例如index.html),以便浏览的url将显示为父路径,例如:
http://www.yoursite.com/clients/abc123/index.html
将显示为:
http://www.yoursite.com/clients/abc123/
或其他方式,具体取决于重写规则的设置。我绝对不是HTACCESS和MOD_REWRITE规则方面的专家,所以我将推荐下面的页面及其底部的相关链接作为一个很好的起点。
guide to HTACCESS and MOD_REWRITE
https://stackoverflow.com/questions/22725708
复制相似问题