0

セキュリティ上の理由から、あるページで URL パラメータを暗号化し、別のページで復号化したいと考えています。これを試すと、許可されていない文字エラーが発生します。また、$config['permitted_uri_chars'] を設定したくありません。これによれば。

次のようなURLでパラメータを暗号化できる解決策を教えてください-

wwww.domain.com/controller_name/method_name/parameter1/parameter2

そして、暗号化URLにlikeを使用しています-

<a href="<?php echo site_url('C_Name/M_Name/'.$this->encrypt->encode($id)); ?>">Link</a>

そして、私は復号化のURLにlikeを使用しています-

echo $this->encrypt->decode($id)

他の問題は、その値がランダムに変更されていることです。

これを行う方法を理解してください。

ありがとう。

4

2 に答える 2

5

STEP 1: helper フォルダにヘルパー関数を作成してください

function encode_url($string, $key="", $url_safe=TRUE)
{
    if($key==null || $key=="")
    {
        $key="tyz_mydefaulturlencryption";
    }
      $CI =& get_instance();
    $ret = $CI->encrypt->encode($string, $key);

    if ($url_safe)
    {
        $ret = strtr(
                $ret,
                array(
                    '+' => '.',
                    '=' => '-',
                    '/' => '~'
                )
            );
    }

    return $ret;
}
  function decode_url($string, $key="")
{
     if($key==null || $key=="")
    {
        $key="tyz_mydefaulturlencryption";
    }
        $CI =& get_instance();
    $string = strtr(
            $string,
            array(
                '.' => '+',
                '-' => '=',
                '~' => '/'
            )
        );

    return $CI->encrypt->decode($string, $key);
}

STEP 2: このファイルを autoload ファイルに割り当てます

$autoload['helper'] = array('url','form','url_encryption_helper');

STEP 3:encode_urlコントローラー、モデル、ビューで 関数を呼び出して暗号化する

   $rr="rahul K A";
   $a= encode_url($rr); 
于 2015-02-02T09:14:30.160 に答える
0

クエリ文字列を使用できます。

<a href="<?php echo site_url('C_Name/M_Name/?id='.$this->encrypt->encode($id)); ?>">Link</a>

クエリ文字列では、何でも使用できます

于 2013-10-25T12:15:28.263 に答える