1

当用户单击 url 时,我想将 id 从一个页面传递到另一个页面。可以有多个url,每个url对应一个单独的id。根据点击的 url,我想传递相应的 id 和一个动作。目前我正在使用以下方法:

<a href="Process.php?action=del&id='.$id.'">

但是,动作和 id 在 url 中都是可见的。有没有办法在 url 中隐藏这些信息而不是通过 url 传递它?此外,如果我使用隐藏字段传递它们,则可以使用浏览器开发工具访问它们。我想让它们安全,因此根本无法读取或修改它们。为了安全起见,我想隐藏这个,所以没有任何用户可以看到这个

4

3 回答 3

3

仅在 HTML 中,您将无法通过$_GET.

如果你真的想在用户点击链接时隐藏一些变量,你可以使用带有自动提交表单的 Javascript 来使用$_POST变量。

例子

<form method="POST" action="yourpage.php" id="yourform" style="display:none;">
   <input type="hidden" name="hiddenfield" value="__" />
</form>

<a href="" onclick="document.getElementById('yourform').submit();return false;" />

现在,在 中yourpage.php,您将能够获得该$_POST['hiddenfield']值。


编辑

我认为不可能真正从开发工具中隐藏这些值。顺便说一句,你也许可以使用会话,它会更“安全”..

例子:

// page1.php
session_start();
$_SESSION['yourname'] = 'yourvalue';

// page2.php
session_start();
$_SESSION['yourname'];  // Contains 'yourvalue'
于 2013-05-10T06:39:16.757 回答
0

隐藏 id 的最好方法(如果你的意思是安全的话)是加密它。您应该使用MCRYPT函数来加密 id。您可以在一个字符串中同时加密ID和您的ACTION,然后将该字符串传递给 URL,然后当您想使用它时,您可以解密参数并将其拆分。当您将其与htaccess中的 MOD_REWRITE 连接时,您可以获得如下网址:

<a href="Process,Some title of yourpage,í,eHGxC•z»@”“§``"> to make it more "pretty" you can use base64 on this string.

或使用 base64、mcrypt 和 mod_rewrite

<a href="Process,SWRlYW">

解密字符串你应该使用base64_decode()mcrypt_decrypt()

于 2013-05-10T07:55:00.137 回答
-1

您可以为此使用 base64(如果安全性确实是一个大问题)。在将其传递给 URL 之前,您可以先对其进行编码,然后在接收端进行解码。

检查此网址:http ://www.webtoolkit.info/javascript-base64.html

编辑:

请忽略上面括号中的行。

根据下面的评论,base64 确实不负责安全性。更好的方法是使用服务器端语言来加密/解密值。通过 javascript 使用 base64 不是一个好主意。谢谢鲍比。

于 2013-05-10T07:07:48.523 回答