首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ZF2加密参数

ZF2加密参数
EN

Stack Overflow用户
提问于 2014-03-12 10:39:57
回答 2查看 533关注 0票数 0

在我的ZF2应用程序中,我希望加密我的参数,这样当有/product/1这样的链接时,将显示为/product/update/cdsk45kdi340kd0wlw0或类似的东西。我需要在控制器和视图中加密和解密它。最好的方法是什么?谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-12 12:45:50

这里的要点是,您希望避免用户猜测url。我会为每个产品生成一个随机令牌。将此令牌与产品的id (和所有其他属性)一起存储在数据库中。

要生成作为令牌的随机字符串,可以使用Zend\Math\RandRand::getString(10);为您提供10个字符的随机字符串。当您将产品存储在数据库中时,为每个产品生成一个随机字符串。然后,在您的控制器中,您不是基于标识符(id),而是基于令牌来获得产品。

票数 1
EN

Stack Overflow用户

发布于 2014-03-12 11:49:32

让路线看起来像这样

代码语言:javascript
运行
复制
'product' => array(
  'type' => 'Zend\Mvc\Router\Http\Segment',
  'options' => array(
    'route'    => '/product/update[/:hashedid]',
    'constraints' => array(
      'hashedid' => '[a-zA-Z0-9-_\.]+',
    ),
    'defaults' => array(
      'controller' => 'Index',
      'action'     => 'index',
    ),
   ),
 ),

在控制器中

代码语言:javascript
运行
复制
$hashedid = $this->params()->fromRoute('hashedid', 0);
$id = $this->dehash($hashedid);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22348879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档