-1

URLを介して2つのページ間で渡す変数を保護する方法は? あるページに変数があり、その変数を安全な方法でページにTEST渡したいとしましょう。test2.php

URL経由でページに変換test variableHash 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

変数を表示したいが、ユーザーが変数を変更できないようにしたい場合は、変数とともにハッシュを渡すだけで安全です。

いえ

$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

URL (GET 引数を含む) は通常 httpd ログに保存されるため、まったく安全ではありません。したがって、これには POST を使用し、送信には SSL を使用します。GET を使用する必要がある場合は、データの暗号化を試みることができますが、一部の Web ブラウザーでは使用する URL の最大長に制限があるため、GET のデータが多すぎると混乱する可能性があることに注意してください。

于 2013-04-08T08:54:19.603 に答える
1

安全なハッシュ関数は一方向であるため、値を渡すのには適していません。これを行う最も安全な方法は、SSL を使用し、変数を POST して、クエリ文字列/アドレス バーに表示されないようにすることです。

于 2013-04-08T08:54:27.800 に答える
1

SSL (暗号化されたトラフィックの場合 -ここを参照) と POST (ここを参照) を使用します。

于 2013-04-08T08:55:24.287 に答える
1

答えは簡単です。

  • 特定のページとそのコンテンツを識別するために、URLにその変数が必要です
  • または、認証情報などの内部サイト変数です。セッション経由で渡す必要があります。

最初のケースでは、この変数をまったく「保護」しないでください。

于 2013-04-08T08:56:16.747 に答える