如何通过url保护两个页面之间的传递变量?假设我在一个页面中有一个TEST
变量,我想在安全方法中将该变量传递给test2.php
页面?
如何将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'];
答案 0 :(得分:3)
如果您希望变量可见但想要阻止用户更改变量,那么您可以简单地将哈希与变量一起传递。
即
$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中的变量,您可以使用其他建议的答案。
答案 1 :(得分:1)
它根本不安全,因为URL(包括GET参数)通常存储在httpd日志中。因此,请使用POST,使用SSL进行传输。如果您需要使用GET,您可以尝试加密您的数据,但请注意,某些Web浏览器限制了所使用的URL的最大长度,因此GET中的太多数据可能会使它们混淆
答案 2 :(得分:1)
安全散列函数是一种方式,因此传递值没有用。最安全的方法是使用SSL,并对变量进行POST,这样它们就不会显示在查询字符串/地址栏中。
答案 3 :(得分:1)
答案 4 :(得分:1)
答案很简单。
对于第一种情况,你根本不应该“保护”这个变量。