php-隐藏通过href标记传递的参数

我通过href标记传递参数,如下所示:

<a href='message.php?toid=$userid&name1=$fname&name2=$lname'>

当我重定向到message.php时,这三个参数在地址栏上可见.如何隐藏这些参数?我遇到过.htaccess作为解决方案之一,但是没有.htaccess,我想隐藏参数

解决方法:

不,您不能隐藏通过< a>发送的参数.锚标签.

但是,您可以通过加密参数然后在服务器端脚本上对其解密来对其进行混淆.

一个使用加密解密的简单图示…

test1.php

<?php
$key_value = "somekey"; //<--- This is a key for the encryption decryption process
$plain_text = "the secret !"; //<-- The actual text you are going to send.
$encryptedmsg = mcrypt_ecb(MCRYPT_DES, $key_value, $plain_text, MCRYPT_ENCRYPT); //<-- Encrypting...
echo "<a href=test2.php?enc=$encryptedmsg>Click Here</a>"; //<-- Your anchor tag

test2.php

<?php
$key_value = "somekey"; //<--- Note..the same key !
$decryptedmsg = mcrypt_ecb(MCRYPT_DES, $key_value, $_GET['enc'], MCRYPT_DECRYPT); //<-- Decrypting
echo $decryptedmsg; //<-- Prints "the secret"

当单击链接时.. test2.php将获取enc参数,然后使用代码对其解密,但是,用户将无法阅读纯文本.

当您单击来自test1.php的链接时,这就是地址栏上的样子…

http://localhost/ext1/test2.php?enc=%D4%1D%96F|C%8B%8C%D7%8AP%19=%13%F6%A1

警告:不建议使用mcrypt_ecb.我只是将其用于说明目的,以使您了解正在发生的事情.

上一篇:php-htaccess错误文档404并将URL传递到路径


下一篇:php-在mod_rewrite之后将问号解析为普通字符