5

我正在开发一个 PHP 应用程序来管理公司的订单。要查看订单,URL 当前是/orders/view/3502

我不希望订单 ID 号出现在 URL 中,所以我使用 CodeIgniter 的加密库对 URL 中的 ID 进行加密。URL(加密后)看起来像/orders/view/AaffGdQQ.

我遇到的问题是有时加密的 ID 包含正斜杠或加号,它们在 URL 中无法正常工作。CodeIgniter 基于斜杠读取 URL,因此,如果加密的 ID 有斜杠,它会将其读取为 2 个变量,而不是一个。此外,加号被解释为 URL 中的空格。

所以,我的问题是,如何加密 ID 并确保字符串不包含加号或斜杠?

编辑:我想看看加密的 ID 是否包含斜线或加号,如果包含,请再次加密。出于某种原因,每次对 ID 进行加密时,它都会有所不同,所以这会起作用。

4

3 回答 3

9

您也可以使用 base64_encode()。这也将使它更长,看起来“更安全”。还增加了一层混淆。

于 2010-12-03T17:00:39.110 回答
2

也许通过加密的数据urlencode()可以解决这个问题?完成此操作后,您必须在 CodeIgniter 之前拦截数据并urldecode()在其上运行。

只是一个快速的想法,祝你好运!

于 2010-12-03T16:59:17.143 回答
0

查找加密不使用的一些字符,并根据需要替换它们。使用 url 时,撤消它。

于 2010-12-03T16:59:00.890 回答