5

我喜欢为用户的条目创建一个安全的 URL(删除和编辑链接)。

例如,这是我的实际网址

http://localhost/project/blogs/delete/1/test-title

我想做的是,

http://localhost/project/blogs/delete/4324143563443/test-title (some hash made of salt+user auth id)

我的主要目的是创建一个安全哈希以及删除和编辑方法的 URL。是否有任何自定义方法可用?我在 CakePHP 安全功能http://book.cakephp.org/2.0/en/core-utility-libraries/security.html中进行了搜索,但不确定它是否正确或不确定使用哪种算法)

4

2 回答 2

7

首先,虽然我不太清楚您要如何/为什么要这样做,但听起来您想通过隐藏它们的 URL 来“保护”这些链接。这被称为“通过默默无闻的安全”,通常是不赞成的。

在 Cake(和大多数应用程序)中,实现此目的的常用方法是允许用户登录(请参阅:Auth 组件),然后,例如,在您的删除操作中(即对于 URL /delete/1)请求将被检查对于有效的用户会话,并且该用户具有足够的删除权限。

尽管我强烈建议不要这样做,但如果您确实希望创建这些晦涩的 URL,那么您可能应该使用Security::hash(); . 这样做的问题是,您不能只对 id 进行散列,然后直接从散列中确定 id(这就是重点!)。相反,您需要将哈希存储在数据库中,然后查询哈希(每个帖子都可以有一个从 id 或随机数据生成的唯一哈希,两者都可以)。

于 2012-12-30T13:38:13.860 回答
3

如前所述,“默默无闻的安全性”不是很聪明。然而,实现您想要的最简单的方法是使用 UUID 作为表的主键,而不是数字自动增量。

于 2012-12-30T14:00:27.957 回答