Mik*_*ike 2 php mysql encryption
我一直在网上查看关于加密网址中id的解决方案的文章.我已经尝试过基本的编码解码,但是我在下一页解码它时遇到的问题我做了一个选择,其中id = decode id.它不会从表中获取正确的用户.
我的链接:
My link:
<a href="sendContract.inc.php?id=<?php echo
encrypt($customer_id) ?>"> View Contract </a>
Run Code Online (Sandbox Code Playgroud)
sendContract.inc.php页面:
$customer_id = $_GET['id'];
$decryped_id = base64_decode($customer_id);
$sql = "SELECT *
FROM bookings
LEFT JOIN customers
USING (customer_id)
WHERE customer_id = '".$decryped_id."'
";
Run Code Online (Sandbox Code Playgroud)
更新:现在我理解需要使用的urlencode,它可以在URL中正常工作.该页面显示客户合同.它只对他们来说是独一无二的.合同链接通过电子邮件发送,该电子邮件只是与其customer_id的链接(现在已对其进行编码,解码).我想知道我还能做些什么来保护他们的链接和信息?合同在链接中显示为PDF(使用tcpdf).
我喜欢使用Hashids:
Hashids是一个小型开源库,可以从数字中生成简短,独特,非顺序的ID.
它将像347这样的数字转换为像"yr8"这样的字符串,或者像[27,986]这样的数字数组转换为"3kTMd".
您还可以解码这些ID.这在将多个参数捆绑到一个或简单地将它们用作短UID时非常有用.
Hashids已被移植到多种语言,包括PHP.以下是他们网站上的一个例子:
Run Code Online (Sandbox Code Playgroud)$hashids = new Hashids\Hashids('this is my salt'); $id = $hashids->encode(1, 2, 3); $numbers = $hashids->decode($id);