【问题标题】:how to encrypt url parameters in codeigniter without disallowed characters?如何在没有不允许的字符的情况下加密codeigniter中的url参数?
【发布时间】:2013-11-04 12:39:22
【问题描述】:

出于安全原因,我想在一个页面上加密我们的 url 参数并在另一页面上解密。当我尝试这样做时,会发生不允许的字符错误。我也不想设置 $config['permitted_uri_chars']。根据这个。

请给我解决方案,我可以使用 url 加密参数,例如 -

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

我正在使用 like 来加密 url-

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

我使用 like 来解密 url-

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

另一个问题是它的值是随机改变的。

请让我明白如何做到这一点。

谢谢。

【问题讨论】:

标签: php codeigniter url encryption


【解决方案1】:

第 1 步: 请在 helper 文件夹中创建一个 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);
}

第 2 步:在自动加载文件中分配此文件

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

第 3 步: 在控制器、模型、视图中调用函数encode_url进行加密

   $rr="rahul K A";
   $a= encode_url($rr); 

【讨论】:

  • 感谢帮助了很多开发者永远是开发者
【解决方案2】:

您可以使用查询字符串:

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

在查询字符串中,你可以使用任何东西

【讨论】:

    猜你喜欢
    • 2017-07-05
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多