【问题标题】:Codeigniter URI get confused because of hashed_passwordCodeigniter URI 因 hashed_pa​​ssword 而变得混乱
【发布时间】:2018-05-05 03:41:19
【问题描述】:

所以我所做的是一个电子邮件验证功能,它在从 gmail 重定向到 localhost 时将我的电子邮件存储在 uri 中,问题是电子邮件是加密的,有时它确实会生成“/”的结果,这会混淆 uri 段并划分第 4 段和第 5 段中的加密电子邮件。

带有加密的 Uri 示例:

http://yourdomain.com/system/index.php/controller/method/$2y$10$exTPJiuAiDRQzuiPV/AcW.YnYovq4n1ETbMdtOabHoWQ.yM9ePmPy

查看 PV ' / ' AcW 这将 uri 分开,我在将其存储为时会遇到问题:

$email = $this->uri->segment(4);

我确实尝试过这样存储:

$email = $this->uri->segment(4) && $this->uri->segment(5);

但仍然给我一个 false 的布尔值。

【问题讨论】:

  • 第 4 段和第 5 段的输出分别是什么?
  • 更改您的加密方法以删除“/”。当然,斜线会混淆框架..
  • @VincentDecaux 我需要使用什么加密才能在语法中不会给出随机的“/”?
  • 你现在使用什么加密?或者如果可以的话就使用str_replace('/', '.', $hash)
  • 你为什么要这样做?大多数身份验证系统在数据库中存储一个忘记的密码代码,并通过 uri 将该哈希提交给用户,例如 localhost.com/forgotpass/hash。然后在哈希上,您只需将该行与该特定的行与用户匹配。简单易行。

标签: php codeigniter email encryption segment


【解决方案1】:

不是这样的方式:

您的链接:

http://yourdomain.com/system/index.php/controller/method/?hash=<?=urlencode('$2y$10$exTPJiuAiDRQzuiPV/AcW.YnYovq4n1ETbMdtOabHoWQ.yM9ePmPy'); ?>

并在您的控制器/方法中通过

访问它
$strHash = $this->input->get('hash');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-31
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    相关资源
    最近更新 更多