【发布时间】:2012-06-24 12:54:25
【问题描述】:
我无法理解 Symfony 2 的一个关键概念。
我正在开发一个网站,用户可以在该网站上创建内容,然后使用秘密网址将其发送给其他人。像 www.yoursite.com/{secret-identifier-string} 之类的东西。
我打算这样做:
- 保留用户的内容。
- 使用双向加密方法(如
mcrypt_encrypt)创建包含内容 ID 和创建时间戳(或任何其他永远不会再次更改的内容,作为额外的安全功能)的标识符字符串。 - 创建链接并将其显示给用户以将其赠送
- 每当调用 url 时,标识符字符串都会被解密。如果提供的时间戳与 content id 行的对应值匹配,则会显示该页面。
我的问题是:
- 一般来说,您认为这是一个好的程序吗?
- 在 Symfony2 之外,我会创建像
getIdentifierString()和getContentPageLink()这样的辅助方法。 Symfony2中对应的代码应该放在哪里?它是否属于实体类?如果是这样,我会遇到问题,因为我正在使用服务类进行加密。该服务仅在控制器中可用。
非常感谢!
【问题讨论】:
-
标识符是否必须是双向加密字符串?为什么不直接生成一个长的随机字符串(甚至是内容的单向哈希)并将其存储为索引? ID和时间戳加解密的原因/优势是什么?
-
我看到了不生成必须存储在数据库中的不必要数据的优势。
标签: symfony