-1

如何通过 url 保护两个页面之间的传递变量?假设我TEST在一页中有一个变量,并且我想将该变量传递给test2.php安全方法中的页面?

如何通过url转换test variable成页面Hash Method并传递?test2.php

例如

$test=$_POST['test']; 
echo $row['test'];

<a href="test2.php?test=$test">Test</a>

OR  

<a href="test2.php?test=$row['test']">Test</a>

test2 页面

$test=$_REQUEST['test'];
4

5 回答 5

3

通过安全,如果您的意思是希望变量可见但又想阻止用户更改变量,您可以简单地将哈希与变量一起传递。

IE

$variable = 'abc';
$salt = 'your secret key';
$hash = md5($salt.$variable);

<a href="page2.php?variable=$variable&hash=$hash">Page 2</a>

On the second page you can rehash to see if the value has changed or not.

$variable = $_REQUEST['variable'];
$salt = 'your secret key';
$hash = md5($salt.$variable);

if($hash == $_REQUEST['hash']){
  //do staff
}

但是,这不会隐藏 URL 中的变量,您可以使用其他建议的答案。

于 2013-04-08T09:01:22.397 回答
1

使用 SSL(用于加密流量 - 请参阅此处)和 POST(请参阅此处)。

于 2013-04-08T08:55:24.287 回答
1

答案很简单。

  • 要么您需要在 url 中使用该变量来识别特定页面及其内容
  • 或者它是内部站点变量,例如授权信息 - 它必须通过会话传递。

对于第一种情况,您根本不应该“保护”这个变量。

于 2013-04-08T08:56:16.747 回答
1

它根本不安全,因为 URL(包括 GET 参数)通常存储在 httpd 日志中。所以使用 POST 进行传输,使用 SSL 进行传输。如果您需要使用 GET,您可以尝试加密您的数据,但请注意某些 Web 浏览器对使用的 URL 的最大长度有限制,因此 GET 中的数据过多可能会使他们感到困惑

于 2013-04-08T08:54:19.603 回答
1

安全散列函数是一种方法,因此不适合传递值。最安全的方法是使用 SSL,并发布您的变量,以便它们不会显示在查询字符串/地址栏中。

于 2013-04-08T08:54:27.800 回答