【发布时间】:2011-05-19 20:55:14
【问题描述】:
我正在开发一个 PHP 应用程序来管理一家公司的订单。要查看订单,URL 当前是/orders/view/3502。
我不希望订单 ID 号出现在 URL 中,所以我使用 CodeIgniter 的加密库对 URL 中的 ID 进行加密。 URL(加密后)看起来像/orders/view/AaffGdQQ。
我遇到的问题是有时加密的 ID 包含正斜杠或加号,它们在 URL 中无法正常工作。 CodeIgniter 根据斜杠读取 URL,因此,如果加密的 ID 有斜杠,它会将其读取为 2 个变量,而不是一个。此外,加号被解释为 URL 中的空格。
那么,我的问题是,如何加密 ID 并确保字符串不包含加号或斜线?
编辑:我想看看加密的 ID 是否包含斜线或加号,如果包含,请再次加密。出于某种原因,每次对 ID 进行加密时,它都会有所不同,所以这会起作用。
【问题讨论】:
-
在 URL 中显示订单 ID 有什么问题?
-
出于“安全原因”,我的老板不希望它在那里。
-
您应该通过检查用户是否真的有权查看订单来保护订单,而不是通过混淆网址。
-
@newbie:也许他们不希望客户看到低 ID ;)
-
@thejh 那么他们应该使用其他东西作为数据库中订单的 ID
标签: php codeigniter mcrypt