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

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

我遇到的问题有时是加密的ID包含前向斜线或加号符号,在URL中,该ID在URL中无法正常工作。 CodeIgniter读取基于斜率的URL,因此,如果加密ID具有斜线,它将读取为2个变量,而不是一个。另外,加上符号被解释为URL中的空间。

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

编辑:我有一个想法,看看加密的ID是否包含斜线或加号,如果这样做,请再次对其进行加密。由于某种原因,每次ID被加密时,都不同,因此这会起作用。

有帮助吗?

解决方案

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

其他提示

也许通过CRYP数据通过 urlencode() 会解决这个问题吗?执行此操作后,您必须在Codeigniter之前拦截数据,然后运行 urldecode() 在上面。

只是一个快速的主意,祝你好运!

查找加密不使用的某些字符,并替换它们合适的字符。使用URL时,请撤消它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top